Why Another Architecture?
- Driven by same age old tested and trusted principle of Divide and Rule.
Divide the system into smaller(micro) and more manageble services
- Yes, it still can't beat the law of conservation of challenges.
Total amount of Challenges always stays the same. It can only be transformed from one form to another.
- It just tries to divide it into a number of smaller and manageble challenges.
Not always though. Depends on how you divide the system in the first place.
Microservice
- Service is a self-contained and well-defined functionality, which is independent of the state of another such service.
- A Microservice is a self-contained functionality(ies)/service(s) with well-defined interface (API) and its collaborations with other such microservices.
- And most importantly it is independently deployable
Benefits
- Autonomy.
In technology adoption: Allows teams to choose the right tools and technologies best suitable for the service leading to better performance, efficiency, productivity and latest technology adoption.
In update, deploy: Allows teams to update, deploy services autonomously as long as API and collaborations of the service has not changed, without taking the whole system offline.
- Resilience
The system continues to function even if one or more services fail leading to better user experience.
The failed services can be fixed/recovered more rapidly without bringing down the entire system.
- Agility
Breaking the system into smaller chunks of functionalities/services speeds up development. It empower teams to create, test, and deploy small and frequent releases rapidly.
- Scalability
Services can scale up or down instantly as per the demand thereby optimizing resource allocation and cost (thanks to advancement of containerization technologies)
Challenges
- Distributed Logging
No single source of truth for developers and operations teams as loggings are scattered accross different services.
There are tools available though for aggregating the logs.
- Monitoring and Infrastructure Management
Complicated as many moving parts exist.



