What is reactive programming?
According to The Reactive Manifesto (http://www.reactivemanifesto.org/ ), reactive systems have the following attributes:
- Responsive: The system responds in a timely manner in a consistent and predictable way.
- Resilient: The system is resilient to faults and can quickly recover from them.
- Elastic: The system maintains its responsiveness under varying workloads, by increasing or decreasing the resources allocated. This is done by dynamically finding and fixing bottlenecks. This is not to be confused with scalability. An elastic system needs to be scalable up and down according to need–see http://www.reactivemanifesto.org/glossary#Elasticity.
- Message-driven: They rely on asynchronous message-passing that ensures loose coupling, isolation, location transparency, and fault tolerance.
The need is real. Nowadays, a non-responsive system is considered buggy and will be avoided by customers. A non-responsive website will have a low rank in search engines, according to https...