Microservices
Microservices architecture refers to an architectural style for developing applications where the application is developed as a collection of services that are :
- Small. faster to develop and Easier to understand.
- Highly maintainable and testable. It is also more resilient as if one piece fails, the whole app does not necessarily go down,
- Loosely coupled, thus highly scalable
- Independently deployable. Shorter development cycles
- Independently developed. Owned by a small team. More developers can work on the same big application
- Organized around business capabilities. Each service can be developed using the best language and technology for its own purpose.
It allows a large application to be separated into small independent services. Each one having its own realm of responsibility, built to accommodate an application feature and handle discrete tasks.
It also enables the rapid, frequent and reliable delivery of large, complex applications.
Microservices have become more viable thanks to advancements in containerization technologies, thus being very well suited for cloud-based applications. It also enables an organization to evolve its technology stack more easily.
To serve a single user request, a microservices-based application can call on many internal microservices to compose its response.
Microservices are used to speed up development. It is common to compare microservices versus service-oriented architecture. Both have the same objective of breaking up monolithic applications into smaller components, but with different approaches.
Node.js with its very small footprint is very well suited for this type of architecture.