In recent years, microservices and distributed systems have become increasingly popular.
Not only does breaking a system into small independent processes suit a single-threaded event-loop platform such as Node, but there can be significant advantages in adopting a microservices architecture, such as:
- Focus: Each service should do one thing only and do it well. This means that an individual microservice should contain a small amount of code that is easy for an individual developer to reason about.
- Decoupling: Services run in their own process space and are therefore decoupled from the rest of the system. This makes it easy to replace an individual microservice without greatly perturbing the rest of the system.
- Fine Grained Continuous Delivery/Deployment: Services are individually deployable, this leads to a model whereby deployment can be an ongoing process. thus...