# Microservices Patterns

> Provides microservices design patterns for service decomposition, API gateway, circuit breakers, saga orchestration, and inter-service communication. Use when designing or implementing microservices architecture.

- Skill: `tranhieutt/microservices-patterns` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tranhieutt/microservices-patterns`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tranhieutt/microservices-patterns/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: tranhieutt (https://skillmd.com/u/tranhieutt)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tranhieutt/microservices-patterns

---


# 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

