
Elasticity
Elasticity means scalability. Our system should support scale up/scale down and scale out/ scale in. Our Reactive system should support scale up/scale out so that it responds to the users in a timely manner. It should also support scale down/scale in order to save our organization cost.
In simple words, Elastic = React to load.
This means our system should respond to users in a timely manner even at a heavy load.
With this property, a Reactive system can allocate and/or deallocate resources for every component dynamically and automatically to match demands.
If our Reactive system follows the Message-Driven approach, it supports Elasticity easily:
Elasticity = Scale up/down + Scaleout/in
Scale up: When the load increases, a Reactive system should be able to easily upgrade it with more and more powerful resources (for instance, more CPU Cores) automatically, based on the demand:

Scale down: When the load decreases, a Reactive system should be able to easily degrade it by removing some resources (for instance, CPU Cores) automatically, based on demand:

Scale out: When the load increases, a Reactive system should be able to easily extend it by adding some new nodes or servers automatically, based on the demand:

Scale in: When the load decreases, a Reactive system should be able to easily sink it by removing some nodes or servers automatically, based on the demand:
