Reactive programming
Reactive programming is a paradigm that aims at building better concurrent systems. Reactive applications are designed to comply with the following requirements exemplified by the reactive manifesto:
- Responsive: The system responds immediately to the user.
- Elastic: The system is capable of handling different levels of load and can adapt to accommodate increasing demands.
- Resilient: The system deals with failure gracefully. This is achieved by modularity and avoiding having a single point of failure (SPOF).
- Message-driven: The system should not block and take advantage of events and messages. A message-driven application helps achieve all the previous requirements.
The requirements for reactive systems are quite reasonable but abstract, which leads us to a natural question: how exactly does reactive programming work? In this section, we will learn about the principles of reactive programming using the Reactive Extensions for Python (RxPY...