vertx.io

what is vertx

vertx is a toolkit to build reactive and distributed system

reactive system principles

responsive, elastic , resilient, asynchronous message passing to interact

what is reactive

Reactive programming—A development model focusing on the observation of data streams, reacting on changes, and propagating them

Reactive system—An architecture style used to build responsive and robust distributed systems based on asynchronous message-passing

Reactive streams is an initiative to provide a standard for asynchronous stream processing with back-pressure. It provides a minimal set of interfaces and protocols that describe the opera‐ tions and entities to achieve the asynchronous streams of data with nonblocking back-pressure. It does not define operators manipulat‐ ing the streams, and is mainly used as an interoperability layer. This initiative is supported by Netflix, Lightbend, and Red Hat, among others.

why use asynchronous message-passing

Using asynchronous message-passing interactions provides reactive systems with two critical properties: • Elasticity—The ability to scale horizontally (scale out/in) • Resilience—The ability to handle failure and recover # reactive microservices ##Autonomy They can adapt to the avail‐ ability or unavailability of the services surrounding them. ##Asynchronisity A reactive microservice uses asynchronous message- passing to interact with its peers. It also receives messages and has the ability to produce responses to these messages.

• Resilience Resilience is not only about managing failure, it’s also about self-healing • Elasticity a reactive microservice must be elastic, so the system can adapt to the number of instances to manage the load.