20
BE REACTIVE AND MICRO WITH A MICROPROFILE STACK Ondro Mihályi @OMIHALYI

BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

BEREACTIVEANDMICROWITHAMICROPROFILE

STACK

OndroMihályi@OMIHALYI

Page 2: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

WHATISMICROPROFILE?

open-sourcespecificationforJavamicroservices( )microprofile.io

@OMIHALYI

Page 3: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

GOALSTOSOLVE

Betteruserexperiencesaveresources/costskeepupwithmassiveloadshandle/recoverfromFAILURES

@OMIHALYI

Page 4: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

@OMIHALYI

Page 5: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

REACTIVEINANUTSHELL

Traditional-singlethread

@OMIHALYI

Page 6: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

REACTIVEINANUTSHELL

Reactive-notboundtoathread

@OMIHALYI

Page 7: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

REACTIVEINANUTSHELL

Reactive-notboundtoathread

@OMIHALYI

Page 8: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

REACTIVEPIPELINE

→ incomingrequest→ subscribe→ process→ publish(data/error)

@OMIHALYI

Page 9: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

REACTIVESUPPORTINMICROPROFILE2.0

ReactiveREST&SSE(JAX-RS)AsyncCDIeventsMonitoringviaMetrics

@OMIHALYI

Page 10: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

JAX-RS

@OMIHALYI

Page 11: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

HOWMICROPROFILEFITSTHEPIPELINE

REACTIVEJAX-RSsubscribetoRESTrequestsandresponsespublishRESTresponses

SERVER-SENTEVENTS(JAX-RS)-publishviaHTTPASYNCCDIEVENTS-publishtoothercomponentsMONITORINGviaMetrics-publishmetricstoexternalsystems

@OMIHALYI

Page 12: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

WHAT'SMISSING?

PROCESSINGstreamsofmessagesconnectsuscriberstopublishers

PUBLISHandSUBSRIBEtomessagequeues/topics

connectdecoupledpublisherstosubscribers

@OMIHALYI

Page 13: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

MORETOCOMEINMICROPROFILEPROCESSINGstreamsofmessages

Reactiveoperators-PUBLISHandSUBSRIBEtomessagequeues/topics

ReactiveMessaging-Bonus:

Asynch.FaultToleranceinterceptors

releasecandidate

draftAPI

@OMIHALYI

Page 14: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

WE'LLADDMOREFROMJAVAEE8

Message-DrivenBeansviaPUBLISHandSUBSRIBEtomessagequeues/topics

KafkaJCAconnector

@OMIHALYI

Page 15: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

WE'LLFILLWHAT'SMISSING

RxJava(ReactiveStreams)PROCESSINGstreamsofmessages

asynchronousFaultTolerance

React.jsturnmessagestreamintoUIupdate

@OMIHALYI

Page 16: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

ANDRUNWITHPAYARAMICRO

JAVAEEandMICROPROFILEtogetherexecutableJAR,<70MBeasytorunappswithnoinstallation

commandline,mavenplugin

builduberJARhttps://payara.fish

@OMIHALYI

Page 17: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

OURDEMOAPPLICATION

@OMIHALYI

Page 18: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

DEMOSource:https://github.com/OndrejM-demonstrations/Reactive-and-Micro-

with-MicroProfile-and-Payara

@OMIHALYI

Page 19: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

FURTHERRESOURCES

JCACloudConnectors:

MicroProfileReactiveOperators:

https://github.com/payara/Cloud-Connectors

https://github.com/eclipse/microprofile-reactive-streams

@OMIHALYI

Page 20: BE REACTIVE AND MICRO WITH A MICROPROFILE STACK...REACTIVE JAX-RS subscribe to REST requests and responses publish REST responses SERVER-SENT EVENTS (JAX-RS) - publish via HTTP ASYNC

THANKYOU!

OndroMihalyi( )

WorkingforPayaraMicroProfileprojectmemberEclipseFoundationandJCPmemberCzechJUGleader

ondro.inginea.eu

@OMIHALYI