| name | microservices-patterns |
| type | reference |
| description | Provides microservices design patterns for service decomposition, API gateway, circuit breakers, saga orchestration, and inter-service communication. Use when designing or implementing microservices architecture. |
| paths | ["**/docker-compose*","**/k8s/**","**/services/**"] |
| effort | 4 |
| allowed-tools | Read, Glob, Grep, Write, Edit, Bash |
| user-invocable | true |
| when_to_use | When designing microservices architecture, implementing service communication, or decomposing monoliths |
Microservices Patterns
Service decomposition, communication, resilience, and orchestration patterns.
Service Decomposition
| Pattern | Description | Use When |
|---|
| Domain-Driven | Align services with bounded contexts | Complex business domains |
| Data-Ownership | Service owns its data store | Data isolation required |
| Team-Aligned | One service per team | Large organizations |
Communication Patterns
Sync: HTTP/gRPC
```yaml
API Gateway routing
routes:
- match: { prefix: /orders }
route: { cluster: order-service }
- match: { prefix: /users }
route: { cluster: user-service }
```
Async: Message Queue
```
Producer → Exchange → Queue → Consumer
(Topic) (DLQ on failure)
```
Use async for: event propagation, eventual consistency, load leveling.
Resilience Patterns
Circuit Breaker
```typescript
// Example with opossum
const breaker = new CircuitBreaker(fetchUserProfile, {
timeout: 3000,
errorThresholdPercentage: 50,
resetTimeout: 30000,
});
```
Retry with Backoff
```typescript
async function retryWithBackoff(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try { return await fn(); }
catch (e) { await sleep(Math.pow(2, i) * 1000); }
}
throw new Error('Max retries exceeded');
}
```
Data Patterns
| Pattern | Consistency | Complexity | Use When |
|---|
| Saga (orchestration) | Eventual | High | Complex multi-service transactions |
| Saga (choreography) | Eventual | Medium | Simple event chains |
| Event sourcing | Eventual | High | Audit trail, time travel |
| Shared database | Strong | Low | Anti-pattern, avoid |
API Gateway
Tools: Kong, AWS API Gateway, Envoy, NGINX.
Responsibilities: routing, auth, rate limiting, request transformation, load balancing.
Observability Stack
- Distributed tracing: Jaeger / Tempo
- Metrics: Prometheus + Grafana
- Logs: ELK / Loki
- Service mesh: Istio / Linkerd (adds mTLS, traffic management)
Related Skills
backend-architect — single-service architecture
event-sourcing-architect — event sourcing patterns
kubernetes-architect — deployment patterns
deployment-engineer — CI/CD for microservices