microservices
Design microservice architectures — service decomposition, inter-service communication, data ownership, resilience patterns — with explicit boundaries and failure isolation.
Goals
- Decompose monoliths into bounded services
- Define clear ownership of data and behavior
- Plan synchronous and asynchronous communication
- Design for resilience and observability
Contract
Input
A description of the system to decompose: domain model, current architecture, scaling needs.
Output
A microservices decomposition with:
- Service map and ownership boundaries
- Communication patterns (sync/async)
- Data replication strategy
- Resilience patterns (retry, circuit breaker, timeout)
Steps
- Map the domain — identify bounded contexts and aggregates
- Define service boundaries — single responsibility, high cohesion
- Assign data ownership — which service owns which data
- Choose communication style — REST, gRPC, message queue, event bus
- Design resilience — timeouts, retries, circuit breakers, bulkheads
- Plan observability — distributed tracing, centralized logging
References
../backend-architecture/SKILL.md— service design../../platform/queueing/SKILL.md— async messaging../../platform/monitoring-alerting/SKILL.md— observability../../devops/devops-k8s-orchestration/SKILL.md— deployment