Overview

  • Need for reactive applications
    • Applications should respond fast and have low latencies.
    • Applications should be highly available.
    • Application should be scalable that is should meet users demand
    • Application should be failure, resilient
      • Respond in a timely manner
    • This demand requires reactive backend applications.
    • Vertx Is a tool kit to build reactive applications on a Java virtual machine.
    • It has found its way into cloud native framework Quarkus.
    • Reactive system has many applications and frameworks, adapting it.
    • Reactive system has following characteristics
      • Elastic
        • Elastic means that we can scale up the number of JVM threads or Processes To handle more load.
      • Responsive
        • React to requests
        • Return responses Quickly
          • Success or failure
        • Scale up on high load
          • Avoid timeouts
        • The responsiveness should be guaranteed by scaling up more instances and making sure to meet the users demand.
      • Resilient
        • Resilient means that we can react to failure and not crash the application, but instead be able to recover from it and service all requests For users of our application.
      • Message Driven
        • Reacts To events by combining it with asynchronous Programming and asynchronous message handling.
        • The application is able to avoid undefined status of overload and scale out to have more event handlers.
        • In Vertex This is handled using
          • Vertex event loops
          • Verticals, which are actor like deployment models
            • These verticals communicate over the vertex event, bus via Messages, and by using promise and future. It allows asynchronous programming.
    • A monolithic application avoids inter-service communication, but it very likely Exposes an API Which is avoidable to other systems or directly with user interface.
      • Every time an application is interactingwith other systems, applying the reactive principles makes them more reliable.
      • The HTTP server is reactive, and also the data access layer.
    • In a micro service architecture reactive approach Is more important, if a service is not available, then the calling micro service should still respond fast and handle this error case properly.
  • Vertex components
    • Vertex core
      • Verticals
      • Event loop
      • Event bus
      • Promise and future
    • Vertex web
      • Routing
      • Web server
      • Web client
    • Vertex config
      • Env
      • Xaml
    • Vertex data-reactive SQL clients
      • SQL template
      • Postgres SQL
      • My SQL
      • Flyway
    • Vertex reactive
      • Mutiny
      • Quarkus
        • Quarkus is a modern cloud native Java framework, which is using vertex under the hood.
    • Vertex web sockets
      • Socket server
      • Socket client

Comments