Running a microservices architecture requires a lot of components/features and involves a lot of advanced concepts. For the sake of understanding these concepts, imagine we have a microservice-based application for our e-commerce shopping website. This includes the following services:
- Pricing services: Responsible for giving us the price of the product based on demand
- Demand services: Responsible for calculating the demand for the product based on sales and remaining stock
- Inventory services: Responsible for tracking the quantity left in the inventory, and many other services
Some of the concepts we will see in this section are the following:
- Service registry
- Service discovery
- Health check
- Dynamic routing and resiliency
- Security (authentication and authorization)
- Fault tolerance and failover