Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building Reactive Microservices in Java

Building Reactive Microservices in Java

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.

Bruno Tinoco

July 25, 2019
Tweet

More Decks by Bruno Tinoco

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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.
  8. 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
  9. 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.
  10. 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
  11. 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/
  12. 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
  13. 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
  14. 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...
  15. 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