Microservices (or Microservices architecture) are an approach in which a single application is composed of many loosely coupled and independently deployable code, components , or services.
Microservices typically have their own stack, inclusive of the database and data model!
Microservices communicate with one another over a combination of REST APIs, event streaming, and message broker, and are organised by business capability, with the line separating service often referred to as a bounded context.
Benefits of Microservices
- Code can be updated more easily.
- Teams can use different stacks for different components.
- Components can be scaled independently of one another, reducing the waste and cost associated with having to scale entire applications because a single feature might be facing too much load.