Resiliency and scalability together make a system consistently responsive. A scalable system or an elastic system can easily be upgraded under a varying workload. A reactive system can be made scalable on demand by increasing and decreasing the resources allocated to service these inputs. It supports multiple scaling algorithms by providing relevant live performance for the scalability of the application. We can achieve scalability by using cost-effective software and cheap commodity hardware (for example, the Cloud).
An application is scalable if it can be extended according to its usage, in the following ways:
- scale-up: It makes use of parallelism in multi-core systems.
- scale-out: It makes use of multi-server nodes. Location transparency and resilience are important for this.
Minimizing the shared mutable state is very important for scalability.
Let's see the final foundation of the resilient and scalability of the reactive pattern, that is, message-driven architecture.