Decomposition of ESBs into Cloud Services | Microservice Architecture — Ep. 8
Let’s revise what were the responsibilities of Enterprise Service Buses:
- service discovery and communication
- request routing
- protocol mediation
- authN and authZ
- rate limiting
- logging and monitoring
- workflow orchestration
These capabilities are generic. Any sufficiently complex system needs them — but they don’t need to live inside a single, centralized component.
In cloud-native systems, ESBs were effectively decomposed into specialized services:
- service discovery -> service mesh tools (AppMesh, Linkerd)
- service communication -> messaging and event streaming platforms (Kafka, SQS)
- request routing, rate limiting, auth -> API gateways
- logging and monitoring -> observability tools (CloudWatch, CloudTrail)
- orchestration -> workflow engines (Step Functions)
What remained were microservices themselves:
- independently developed
- independently deployed
- independently scaled
...units of a system, focused on isolated business capabilities.