A microservices architecture composes one application from a suite of small services, each running in its own process and communicating with lightweight mechanisms. Services are built around business capabilities and are independently deployable by fully automated deployment machinery.
- Individual Service Components — single responsibility: each microservice implements a specific business capability. Independent deployment: each service can be deployed, upgraded, and scaled independently.
- Service Database — each microservice can have its own database, so services are loosely coupled and can evolve independently.
- API Gateway — entry point for clients. Request dispatching, composition, and protocol translation; can streamline a set of microservices into a single API. Manages request rate limiting, security, caching, etc.
- Service Discovery — find and communicate with each other without hardcoding service addresses. Often uses a service registry where services register their locations.
- Load Balancer — distributes incoming requests to service instances so no single instance is overwhelmed.
- Communication Protocols — HTTP/REST, RPC, or messaging.
- Centralized Configuration Management — configuration of service environments separate from the service code and binaries.
- Circuit Breaker — detect failures and encapsulate the logic of preventing a failure from constantly recurring. Helps prevent system failures and maintain resilience.
- Logging and Monitoring — diagnose and monitor health and performance. Centralized logging can provide an aggregated view of logs across services.
- Containerization and Orchestration — package into containers (e.g. Docker) which include everything needed to run them. Orchestration tools like Kubernetes manage and scale these containers.
- Authentication and Authorization — only legitimate requests are processed. Can be centralized or managed by individual services.
- Event-Driven Architecture — services produce or consume events. Helps decouple services and ensure asynchronous communication.
- API Composition — for requests that span multiple services, intermediate layer(s) compose the result from various services.
- Versioning — evolve the microservices over time without affecting the consumers.
- Backup and Replication — data safety and availability in case of failures.
- Decentralized Data Management — each microservice has its own view on data models, which may be different from other services.
These components collectively aim at a scalable, maintainable, and resilient architecture. Microservices also introduce complexity; consider the trade-offs against the project's requirements.
ChatGPT 4 — 23/10/2023.
Updated:
2026 Aug 19

