reactiveProgramming realTime eventDriven programmingParadigm
Reactive programming is a programming paradigm oriented toward data flows and the propagation of change: programming with asynchronous data streams.
Good for
- Event driven architecture
- Real time applications
- Handle large number of active users
Reactive manifesto
- Responsive – The system responds in a timely manner. Responsive systems focus on providing rapid and consistent response times, so they deliver a consistent quality of service.
- Resilient – In case the system faces any failure, it stays responsive. Resilience is achieved by replication, isolation, and delegation. Failures are contained within each component, isolating components from each other, so when failure has occurred in a component, it will not affect the other components or the system as a whole.
- Scalable- Reactive systems can react to changes and stay responsive under varying workload. They achieve elasticity in a cost-effective way on commodity hardware and software platforms.
- Message-driven – In order to establish the resilient principle, reactive systems need to establish a boundary between components by relying on asynchronous message passing.
Reactive tools
Vert.x
Reactive applications tooling for JVM
a polyglot event-driven application framework that runs on the Java Virtual Machine.
https://vertx.io/docs/
Sources
https://distributedsystemsauthority.com/what-is-reactive-programming-the-complete-guide/
https://www.reactivemanifesto.org/