Slide 1

Slide 1 text

Bruno Tinoco @ Shaping the Future with Java / July 2019 Building Reactive Microservices in Java 25/07/2019 Type here if add info needed for every slide

Slide 2

Slide 2 text

2 GFT GROUP Shaping the future of digital business Agenda 25/07/2019 1. Evolution of Java 2. Future of Java 3. Reactive concept 4. Core Concepts 5. Reactive Programming 6. Reactive Microservices 7. Microservices Demo Type here if add info needed for every slide

Slide 3

Slide 3 text

3 GFT GROUP Shaping the future of digital business The Evolution of Java 25/07/2019  History of the language evolution Type here if add info needed for every slide Generics, Annotations Functional Interfaces (Lambda exp) Module System (Jigsaw) 10 years window

Slide 4

Slide 4 text

4 GFT GROUP Shaping the future of digital business The Evolution of Java 25/07/2019  Java development milestones over the years Type here if add info needed for every slide

Slide 5

Slide 5 text

5 GFT GROUP Shaping the future of digital business The Future of Java 25/07/2019  Challenges  Migrations from Java 8  Turn systems Cloud Native Type here if add info needed for every slide  Current State  Forbes... 80% companies use Java  Top language TIOBE Index

Slide 6

Slide 6 text

6 GFT GROUP Shaping the future of digital business The Future of Java 25/07/2019 Type here if add info needed for every slide  Java Trend report from InfoQ (Q3 2019) Demo Topics (Cloud native microservices support) Reactive topics https://www.infoq.com/articles/java-jvm-trends- 2019/?useSponsorshipSuggestions=true&itm_source=articles_about_java&itm_medium=link&itm_campaign=java

Slide 7

Slide 7 text

7 GFT GROUP Shaping the future of digital business Reactive Concept 25/07/2019  Reactive Systems are more flexible, loosely-coupled and scalable. Type here if add info needed for every slide www.reactivemanifesto.org Resilient: The system stays responsive in the face of failure. Elastic: The system stays responsive under varying workload. Message Driven: Reactive Systems rely on asynchronous message-passing to establish a boundary between components that ensures loose coupling, isolation and location transparency. Responsive: The system responds in a timely manner if at all possible.

Slide 8

Slide 8 text

8 GFT GROUP Shaping the future of digital business Other Fundamental Concept 25/07/2019  Publish Subscribe Pattern  Asynchronous call  Non-blocking I/O  Event driven Type here if add info needed for every slide

Slide 9

Slide 9 text

9 GFT GROUP Shaping the future of digital business Reactive Programming 25/07/2019 Type here if add info needed for every slide  Event Driven - Based on Observable pattern (Event Producers, Consumers/Listenners)  Message Driven – Asynchronous and non-blocking communication  Resources optimization Reactive Streams specification, which is a standard for interoperability between Reactive Programming libraries on the JVM, and according to its own description is “...an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure.” Popular libraries supporting the Reactive Programming techniques on the JVM include, but are not limited to, Akka Streams, Ratpack, Reactor, RxJava and Vert.x.

Slide 10

Slide 10 text

10 GFT GROUP Shaping the future of digital business Reactive Microservices 25/07/2019  We need better tools to solve complex problems  Serviceabilities  Reactive Support Frameworks  Eclipse Vert.x  Spring WebFlux  Lagoom  Quarkus Type here if add info needed for every slide Microservice: 30% application logic, 70% Serviceability

Slide 11

Slide 11 text

11 GFT GROUP Shaping the future of digital business Reactive Microservices 25/07/2019  Eclipse Vert.x is a toolkit for building reactive applications on the JVM. Type here if add info needed for every slide VERT.X Event mechanism The Golden Rule - Don’t Block the Event Loop http://vertx.io/docs/guide-for-java-devs/

Slide 12

Slide 12 text

12 GFT GROUP Shaping the future of digital business quarkus libs Reactive Microservices 25/07/2019  Quarkus is a cloud native java stack tailored for GraalVM & OpenJDK HotSpot, crafted from the best of breed Java libraries and standards Type here if add info needed for every slide https://quarkus.io/ https://quarkus.io/guides/using-vertx.html

Slide 13

Slide 13 text

13 GFT GROUP Shaping the future of digital business A Java Reactive Microservices Demo 25/07/2019  Quarkus + Vert.X demo application Type here if add info needed for every slide Quarkus is a Cloud Native, (Linux) Container First framework for writing Java applications. •Container First: Minimal footprint Java applications optimal for running in containers •Cloud Native: Embraces 12 factor architecture in environments like Kubernetes. •Unify imperative and reactive: Brings under one programming model non blocking and imperative styles of development. •Standards-based: Based on the standards and frameworks you love and use (RESTEasy, Hibernate, Netty, Eclipse Vert.x, Apache Camel...) •Microservice First: Brings lightning fast startup time and code turn around to Java apps •Developer Joy: Development centric experience without compromise to bring your amazing apps to life in no time All under ONE framework

Slide 14

Slide 14 text

14 GFT GROUP Shaping the future of digital business Questions? 25/07/2019 Type here if add info needed for every slide  Let’s talk about it...

Slide 15

Slide 15 text

Shaping the future of digital business Building Reactive Microservices in Java GFT Brazil Bruno Tinoco – Head of API Practices [email protected] 25/07/2019 Type here if add info needed for every slide