Slide 1

Slide 1 text

BE REACTIVE AND MICRO WITH A MICROPROFILE STACK Ondrej Mihályi @omihalyi

Slide 2

Slide 2 text

WHAT DO WE WANT? @OMihalyi

Slide 3

Slide 3 text

there should be a PROBLEM to solve WHY DO WE WANT IT? @OMihalyi

Slide 4

Slide 4 text

BETTER USER EXPERIENCE updates when ready, reduced waiting errors raised ASAP users can react faster avoids unnecessary user retries @OMihalyi

Slide 5

Slide 5 text

HANDLE HIGH LOADS utilize resources at maximum (CPU) threads aren't wasted by blocking avoid blocking of new requests @OMihalyi

Slide 6

Slide 6 text

HANDLE MASSIVE LOADS scale to more nodes messaging to distribute the load @OMihalyi

Slide 7

Slide 7 text

DON'T FORGET ABOUT FAILURES fail fast and avoid waste make sure failures are handled failures happen a lot more in distributed systems @OMihalyi

Slide 8

Slide 8 text

WHAT IS MICROPROFILE? open-source specification for Java microservices ( ) microprofile.io @OMihalyi

Slide 9

Slide 9 text

REACTIVE SUPPORT IN MICROPROFILE Asynchronous REST (JAX-RS) CDI events Monitoring via Metrics @OMihalyi

Slide 10

Slide 10 text

MORE TO COME IN MICROPROFILE Reactive REST & SSE (Java EE 8) Async CDI events (Java EE 8) Async Fault Tolerance interceptors Reactive streams @OMihalyi

Slide 11

Slide 11 text

WE'LL ADD WHAT'S MISSING RxJava (Reactive Streams) handle callbacks and data streams asynchronous Fault Tolerance React.js easy updates on events @OMihalyi

Slide 12

Slide 12 text

OUR DEMO APPLICATION @OMihalyi

Slide 13

Slide 13 text

DEMO Source: https://github.com/OndrejM-demonstrations/Reactive-and-Micro- with-MicroProfile-and-Payara @OMihalyi

Slide 14

Slide 14 text

WE'LL ADD MORE Java EE 8 reactive REST client (JAX-RS) Server-Sent Events Kafka JCA connector Hazelcast distributed cache and other structures NoSQL distributed datastore @OMihalyi

Slide 15

Slide 15 text

DEMO @OMihalyi

Slide 16

Slide 16 text

PAYARA SERVER MicroProfile, Java EE, Hazelcast, Cloud JCA Connectors, CDI event bus dynamic clustering (suitable for cloud) fast development admin console monitoring @OMihalyi

Slide 17

Slide 17 text

PAYARA MICRO APIs as in Server (except SOAP, remote EJB) most of features of the Server executable JAR, <70 MB easier to install and run apps command line, maven plugin build uber JAR @OMihalyi

Slide 18

Slide 18 text

WHAT TO AVOID relying on request scope relying on thread local using synchronous CDI interceptors @OMihalyi

Slide 19

Slide 19 text

QUESTIONS? Thank you! @OMihalyi