Content presented in the GFT Technology LATAM Meetup open for the Brazilian Java community met at the GFT Alphaville office where we talked about building reactive microservices on the Java plataform using Vert.X and Quarkus projects.
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
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
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
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
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.
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
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.
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
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/
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
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