Reactive Manifesto
In 2013, a group of software developers drafted and published a set of principles for the reactive paradigm. The group was led by Joan Boaner.
This set of rules defines core principles of Reactive Programming. Let us look at these principles.
- Responsive
- Resilient
- Elastic
- Message Driven
Responsive
The system should react in a timely manner if possible. The system should be robust enough to respond within the given time frame. It helps in dealing with failures early. Responsiveness also ensures you have a time limit to respond. If the time limit is breached, it is treated as a failure. In case of failure, the system must respond timely and effectively.
Resilient
The system should be effective to handle failures. The reactive system knows how to respond in case of errors. This is achieved by replication, isolation, containment, and delegation. This makes the system to recover in cases of failures without putting the entire system at a halt.
Elastic
The system should scale with load. If the load increases or decreases system must scale accordingly. This means reactive systems are designed without having bottlenecks. It should replicate or eliminate instances based on need.
Message Driven
Reactive systems are message-driven. They work on publish and subscribe methods. The system responds to events as an when it comes. The asynchronous processing enables handling larger loads effectively.
In Next section, we will look at Components of Reactive Systems, and further we will start coding in a reactive manner using RxJava.