Advertisement

Reactive Microservices with Quarkus

May. 13, 2020
Advertisement

More Related Content

Similar to Reactive Microservices with Quarkus(20)

Advertisement

More from Niklas Heidloff(20)

Advertisement

Reactive Microservices with Quarkus

  1. Developing reactive Microservices with Quarkus Niklas Heidloff Developer Advocate, IBM @nheidloff
  2. Reactive Manifesto Reactive Systems Reactive Programming Functional Programming Asynchronous Programming Reactive Streams Reactive Operators Buzzword Bingo #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff
  3. ?
  4. Reactive REST EndpointsReactive Web Application Let’s make it concrete #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff
  5. Reactive Web Application
  6. Reactive REST Endpoints
  7. Reactive Manifesto Responsive Message Driven Elastic Resilient #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff
  8. Reactive Systems != Reactive Programming #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff
  9. Reactive Programming is
  10. Reactive Programming is ‘unusual’
  11. Reactive Programming is ‘unusual’
  12. Reactive Programming is ‘unusual’
  13. Javadoc to the Rescue?
  14. Reactive programming is extremely powerful, but not the right tool for all jobs! #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff
  15. Technologies to build reactive Applications Quarkus Vert.x MicroProfile Kubernetes #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff
  16. Quarkus – Supersonic Subatomic Java
  17. Quarkus using OpenJ9
  18. “Optimizing Enterprise Java for a Microservices Architecture.“ “[...] by innovating [...] with a goal of standardization.” microprofile.io #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff
  19. “Eclipse Vert.x is a tool-kit for building reactive applications on the JVM.” “Eclipse Vert.x is event driven and non blocking [...] and lets your app scale with minimal hardware.” vertx.io #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff
  20. “Kubernetes (K8s) is an open- source system for automating deployment, scaling, and management of containerized applications.” kubernetes.io #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff
  21. Example Application
  22. Architecture Web-App KafkaWeb-API Articles Authors Web-App Postgres Clients Microservices Infrastructure Components Kubernetes API Client
  23. Reactive Web Application
  24. Notifications for Web Applications Web-App KafkaWeb-API Articles Clients Microservices Infrastructure Components Kubernetes API Client 1. 4. 3. 2. Web-App Postgres Authors
  25. MicroProfile Reactive Messaging Web-App KafkaWeb-API Articles Authors Web-App Postgres Clients Microservices Infrastructure Components Kubernetes API Client
  26. MicroProfile Reactive Messaging
  27. MicroProfile Reactive Messaging
  28. Reactive Streams is an initiative to provide a standard for asynchronous stream processing [...] aimed at runtime environments (JVM and JavaScript).” reactive-streams.org #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff Components: 1. Subscriber 2. Publisher 3. Processor Java: • JDK9: java.util.concurrent.Flow • MicroProfile: org.reactivestreams
  29. MicroProfile Reactive Messaging Subscriber Publisher Processor
  30. Server Sent Events Web-App KafkaWeb-API Articles Authors Web-App Postgres Clients Microservices Infrastructure Components Kubernetes API Client
  31. Server Sent Events
  32. Server Sent Events
  33. Server Sent Events Java JavaScript
  34. Server Sent Events
  35. Vert.x Event Bus Web-App KafkaWeb-API Articles Authors Web-App Postgres Clients Microservices Infrastructure Components Kubernetes API Client
  36. @nheidloff Clean Architecture 1. APIs REST endpoints and messaging 2. Business Logic of services and entities 3. Data Access to databases or other services
  37. Vert.x Event Bus Business Layer API Layer
  38. Vert.x Event Bus
  39. Vert.x Event Bus
  40. Vert.x Event Bus
  41. Kafka API Web-App KafkaWeb-API Articles Authors Web-App Postgres Clients Microservices Infrastructure Components Kubernetes API Client
  42. Kafka API
  43. Kafka API
  44. Kafka API
  45. Reactive REST Endpoints
  46. Reactive REST Endpoint Web-App KafkaWeb-API Articles Authors Web-App Postgres Clients Microservices Infrastructure Components Kubernetes API Client
  47. Reactive REST Endpoint
  48. Completion Stage
  49. Completion Stage
  50. Completion Stage and Completable Future
  51. Completion Stage and Completable Future
  52. Chained Completion Stages
  53. Chained Completion Stages
  54. Chained Completion Stages
  55. Chained Completion Stages
  56. Exception Handling with imperative Code
  57. Exception Handling with reactive Code
  58. Exception Handling with reactive Code
  59. Exception Handling with reactive Code
  60. Exception Handling with reactive Code
  61. Exception Handling with reactive Code
  62. Timeouts
  63. Timeouts
  64. Invoking REST APIs asynchronously Web-App KafkaWeb-API Articles Authors Web-App Postgres Clients Microservices Infrastructure Components Kubernetes API Client
  65. MicroProfile Client
  66. MicroProfile Client
  67. MicroProfile Client
  68. MicroProfile Client
  69. MicroProfile Client
  70. MicroProfile Client
  71. Try out the end-to-end microservices example cloud-native-starter! #IBMDeveloper github.com/ibm/cloud-native-starter@nheidloff
  72. Focus on Developer Experience
  73. Several Kubernetes Environments
  74. IBM Cloud Kubernetes Service including Istio and Knative
  75. IBM Developer developer.ibm.com IBM Cloud Lite account ibm.biz/nheidloff IBM loves open source Kubernetes OpenJ9 MicroProfile Quarkus Reactive systems improve user experiences and are more efficient Summary Get the code à @nheidloff #IBMDeveloper github.com/ibm/cloud-native-starter
Advertisement