In 2013, a group of software developers drafted and published a set of principles for reactive paradigm. The group was led by Joan Boaner.
These set of rules defines core principles of Reactive Programming. Let us look at these principals.
- Message Driven
The system should react in timely manner if possible. System should be robust enough to respond within 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, system must respond timely and effectively.
System should be effective to handle failures. Reactive system knows how to respond in case of errors. This is achieved by replication, isolation, containment and delegation. This makes system to recover in cases of failures without putting entire system at halt.
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.
Reactive systems are message driven. They work on publish and subscribe methods. System responds to events as an when it comes. The asynchronous processing enables handling larger load effectively.
In Next section we will look at Components of Reactive Systems and further we will start coding in reactive manner using RxJava.