Here are some characteristics of a microservice architecture:
- It is a way of designing an application as a group of small services, each executed in its own procedure.
- Microservices can interact with each other internally, mostly through the HTTP API or some time-messaging mechanism such as AMQP or JMS.
- Each microservice is built to execute a specific business requirement. In other words, they are aligned to specific business needs or capabilities.
- Microservices can be deployed independently with an automated mechanism.
- Some sort of common or central process is required to manage microservices, which may or may not use the same technology stack as the individual microservices.
- Microservices manage their life cycle independently of others.
- Changes to one microservice do not impact on others as they run independently.