Reactive Summit 2018 7 ‘14 Java EE 8 ‘17 From Java EE to Jakarta EE ‘13 Java EE 7 ‘07 JAX-RS ‘09 CDI (Java EE 6) Microservices Docker Kubernetes Reactive manifesto ‘12 Vert.x Node.js MVC 1.0 ‘11 Kafka Serverless
Reactive Summit 2018 8 Typical use-case CRUD Database with ORM Development model CDI (injection) JAX-RS (REST API) JPA, Bean Validation, JTA, Management... Execution model Servlets 1 thread per request Java EE: a feet in the past
Reactive Summit 2018 9 Not cloud-friendly, not reactive Based on the concept of application server ➔ 1 server = many applications Does not fit the “cloud model” ➔ Small, lightweight applications ➔ Each service in its own process
Reactive Summit 2018 10 Not cloud-friendly, not reactive Most of the model is synchronous except ● Asynchronous servlets ● CDI events Also: ➔ No stream support ➔ No back-pressure
Reactive Summit 2018 11 A new hope? MicroProfile - the rogue child ➔ A new set of specs ➔ Microservice-friendly ➔ Very iterative ➔ Reactive working group! Jakarta EE ➔ New spec model ➔ Faster processes ➔ Growing interest for reactive
Reactive Summit 2018 21 Step #3 Introducing MicroProfile Reactive Streams Operators HealthDataBean (temperature, heartbeat, pressure) Processor Health data Heartbeat HTTP Client (Vert.x) Snapshot service (latest data) Health data Health data 1 2
Reactive Summit 2018 22 Step #4 Health data comes from MQTT Processor Health data Heartbeat HTTP Client (Vert.x) Snapshot service (latest data) Health data Health data 1 2 MQTT
Reactive Summit 2018 23 Step #5 Event-driven and asynchronous microservices MQTT Kafka Collector service Snapshot service Web application Health data Events split by topic SSE HTTP Events
Reactive Summit 2018 27 Roadmap ● MicroProfile Reactive Stream Operators ○ Approaching 1.0 ○ Starting to infuse in the other MicroProfile specifications ○ Integration in the next MicroProfile release (February 2019) ● MicroProfile Reactive Messaging ○ Data streaming and Event-driven microservice ○ Integration in the next MicroProfile release (February 2019) ● MicroProfile Concurrency ○ Async context propagation