We now live in a world that warrants increased scalability and rapid response. The concept of reactive programming is a need that has arisen to meet the demands of high availability, scalability, and quick response. As per the reactive manifesto (https://www.reactivemanifesto.org/), reactive systems are:
- Responsive: The ability (of a system) to complete assigned tasks within a timeframe. Responsiveness also means that the problems are detected quickly, and dealt with effectively. The key point is the consistent behavior of a system. Consistency helps the users to build confidence in the system.
- Resilient: In the context of changes in behavior, the ability of a system to defend itself from failure is resilience. It is correlated to the responsiveness, as the consistency guarantees error handling as well. Resilience is achieved by the isolation and containment of components subject to error situation and protecting the system from failures...