Scalability is about handling more users, traffic, and data; and in order to do it, we will need to apply some principles and techniques. Our application is already using the most modern techniques and technologies, such as functional and ReactiveX programming, RxScala,
Akka framework, Play, and much more. However, in order to scale, we will need to have an infrastructure in place and other kinds of system that will allow us to handle more users.
A good application architecture should be created around the following principles:
• Separation of Concerns (SOC) (more details at
- • Service Orientation (SOA/microservices)
- • Performance
- • Scalability/Resiliency
Let's see these principles in detail.
Service orientation (SOA/microservices)
Service orientation is about having a higher level of abstraction, which is also called services or microservices. SOA is not about a specific technology, but about principles such as shared services, flexibility, and intrinsic operability. If you want to learn more about SOA, check out the SOA Manifesto at http://www.soa-manifesto.org/. Microservices is a particular flavor of SOA where the main difference is the focus on the granularity, autonomy, and isolation. If you want to learn more about microservices, you can check out
https://www.linkedin.com/pulse/soa-microservices-isolation-evolution-diego-pach eco as well as http://microservices.io/.