microservices-architect — Claude Code skill: distributed system design
Designs distributed system architectures, decomposes monoliths into bounded-context services, and recommends resilience patterns. Useful when architecting microservices, applying DDD, or building observability into cross-service calls.
npx skills add Jeffallan/claude-skills --skill microservices-architect -a claude-codeWhat microservices-architect does
The skill works through six steps: applies domain-driven design to identify bounded contexts, chooses sync or async communication, assigns database ownership per service, adds circuit breakers and timeouts, traces requests with correlation IDs, and documents deployment strategy. Each step includes a validation checkpoint: services own their data exclusively, long-running operations use async messaging, every external call has an explicit timeout and fallback.
Code examples cover correlation ID middleware (Node.js), circuit breaker (Python), saga pattern for distributed transactions (TypeScript), and Kubernetes health probes. Assumes familiarity with Event Sourcing, CQRS, message brokers (Kafka, RabbitMQ), service mesh (Istio), and distributed tracing (Jaeger).
What it helps with
- design microservice boundaries using domain-driven design
- decompose a monolith into independently deployable services
- choose between synchronous and event-driven communication patterns
- implement resilience: circuit breakers, retries, timeouts, graceful degradation
- set up end-to-end request tracing across multiple services
Example prompts for the agent
- Design a microservices architecture for an e-commerce platform with catalog, orders, and payments services
- Help decompose this monolith into services, using bounded contexts from domain-driven design
- Recommend resilience patterns and saga-based compensation for order processing failures
How to install microservices-architect
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill microservices-architect -a claude-code2Manually: put the files in place
~/.claude/skills/microservices-architect/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/microservices-architect/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill microservices-architect -a codex2Manually: put the files in place
.agents/skills/microservices-architect/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill microservices-architect -a cursor2Manually: put the files in place
.cursor/skills/microservices-architect/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills microservices-architect2Manually: put the files in place
.github/skills/microservices-architect/SKILL.md1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill microservices-architect -a gemini-cli2Platform CLI
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/microservices-architectManually: put the files in place
.devin/skills/microservices-architect/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill microservices-architect -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set61
The whole set →Similar
Questions about microservices-architect
How do I install microservices-architect in Claude Code?
Run npx skills add Jeffallan/claude-skills --skill microservices-architect -a claude-code, then view the config at ~/.claude/skills/microservices-architect/SKILL.md.
What does microservices-architect do?
Designs microservices architectures: identifies service boundaries using domain-driven design, selects communication patterns (REST, gRPC, async messaging), builds resilience (circuit breakers, retries, timeouts), and sets up distributed tracing with correlation IDs.
Which design patterns are included?
Domain-driven design with bounded contexts, saga pattern for compensation, event sourcing, CQRS, circuit breaker, bulkheads, async messaging, distributed tracing, and Kubernetes health probes.
Source text
SKILL.md · MIT
---
name: microservices-architect
description: Designs distributed system architectures, decomposes monoliths into bounded-context services, recommends communication patterns, and produces service boundary diagrams and resilience strategies. Use when designing distributed systems, decomposing monoliths, or implementing microservices patterns — including service boundaries, DDD, saga patterns, event sourcing, CQRS, service mesh, or distributed tracing.
license: MIT
metadata:
author: https://github.com/Jeffallan
company: https://synergetic.solutions
version: "1.1.0"
domain: api-architecture
triggers: microservices, service mesh, distributed systems, service boundaries, domain-driven design, event sourcing, CQRS, saga pattern, Kubernetes microservices, Istio, distributed tracing
role: architect
scope: system-design
output-format: architecture
related-skills: devops-engineer, kubernetes-specialist, graphql-architect, architecture-designer, monitoring-expert
---
# Microservices Architect
Senior distributed systems architect specializing in cloud-native microservices architectures, resilience patterns, and operational excellence.
## Core Workflow
1. **Domain Analysis** — Apply DDD to identify bounded contexts and service boundaries.
- *Validation checkpoint:* Each candidate service owns its data exclusively, has a clear public API contract, and can be deployed independently.
2. **Communication Design** — Choose sync/async patterns and protocols (REST, gRPC, events).
- *Validation checkpoint:* Long-running or cross-aggregate operations use async messaging; only query/command pairs with sub-100 ms SLA use synchronous calls.
3. **Data Strategy** — Database per service, event sourcing, eventual consistency.
- *Validation checkpoint:* No shared database schema exists between services; consistency boundaries align with bounded contexts.
4. **Resilience** — Circuit breakers, retries, timeouts, bulkheads, fallbacks.
- *Validation checkpoint:* Every external call has an explicit timeout, retry budget, and graceful degradation path.
5. **Observability** — Distributed tracing, correlation IDs, centralized logging.
- *Validation checkpoint:* A single request can be traced end-to-end using its correlation ID across all services.
6. **Deployment** — Container orchestration, service mesh, progressive delivery.
- *Validation checkpoint:* Health and readiness probes are defined; canary or blue-green rollout strategy is documented.
## Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|-------|-----------|-----------|
| Service Boundaries | `references/decomposition.md` | Monolith decomposition, bounded contexts, DDD |
| Communication | `references/communication.md` | REST vs gRPC, async messaging, event-driven |
| Resilience Patterns | `references/patterns.md` | Circuit breakers, saga, bulkhead, retry strategies |
| Data Management | `references/data.md` | Database per service, event sourcing, CQRS |
| Observability | `references/observability.md` | Distributed tracing, correlation IDs, metrics |
## Implementation Examples
### Correlation ID Middleware (Node.js / Express)
```js
const { v4: uuidv4 } = require('uuid');
function correlationMiddleware(req, res, next) {
req.correlationId = req.headers['x-correlation-id'] || uuidv4();
res.setHeader('x-correlation-id', req.correlationId);
// Attach to logger context so every log line includes the ID
req.log = logger.child({ correlationId: req.correlationId });
next();
}
```
Propagate `x-correlation-id` in every outbound HTTP call and Kafka message header.
### Circuit Breaker (Python / `pybreaker`)
```python
import pybreaker
# Opens after 5 failures; resets after 30 s in half-open state
breaker = pybreaker.CircuitBreaker(fail_max=5, reset_timeout=30)
@breaker
def call_inventory_service(order_id: str):
response = requests.get(f"{INVENTORY_URL}/stock/{order_id}", timeout=2)
response.raise_for_status()
return response.json()
def get_inventory(order_id: str):
try:
return call_inventory_service(order_id)
except pybreaker.CircuitBreakerError:
return {"status": "unavailable", "fallback": True}
```
### Saga Orchestration Skeleton (TypeScript)
```ts
// Each step defines execute() and compensate() so rollback is automatic.
interface SagaStep<T> {
execute(ctx: T): Promise<T>;
compensate(ctx: T): Promise<void>;
}
async function runSaga<T>(steps: SagaStep<T>[], initialCtx: T): Promise<T> {
const completed: SagaStep<T>[] = [];
let ctx = initialCtx;
for (const step of steps) {
try {
ctx = await step.execute(ctx);
completed.push(step);
} catch (err) {
for (const done of completed.reverse()) {
await done.compensate(ctx).catch(console.error);
}
throw err;
}
}
return ctx;
}
// Usage: order creation saga
const orderSaga = [reserveInventoryStep, chargePaymentStep, scheduleShipmentStep];
await runSaga(orderSaga, { orderId, customerId, items });
```
### Health & Readiness Probe (Kubernetes)
```yaml
livenessProbe:
httpGet:
path: /health/live
port: 8080
initialDelaySeconds: 10
periodSeconds: 15
readinessProbe:
httpGet:
path: /health/ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
```
`/health/live` — returns 200 if the process is running.
`/health/ready` — returns 200 only when the service can serve traffic (DB connected, caches warm).
## Constraints
### MUST DO
- Apply domain-driven design for service boundaries
- Use database per service pattern
- Implement circuit breakers for external calls
- Add correlation IDs to all requests
- Use async communication for cross-aggregate operations
- Design for failure and graceful degradation
- Implement health checks and readiness probes
- Use API versioning strategies
### MUST NOT DO
- Create distributed monoliths
- Share databases between services
- Use synchronous calls for long-running operations
- Skip distributed tracing implementation
- Ignore network latency and partial failures
- Create chatty service interfaces
- Store shared state without proper patterns
- Deploy without observability
## Output Templates
When designing microservices architecture, provide:
1. Service boundary diagram with bounded contexts
2. Communication patterns (sync/async, protocols)
3. Data ownership and consistency model
4. Resilience patterns for each integration point
5. Deployment and infrastructure requirements
## Knowledge Reference
Domain-driven design, bounded contexts, event storming, REST/gRPC, message queues (Kafka, RabbitMQ), service mesh (Istio, Linkerd), Kubernetes, circuit breakers, saga patterns, event sourcing, CQRS, distributed tracing (Jaeger, Zipkin), API gateways, eventual consistency, CAP theorem
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/api-architecture/microservices-architect/)
© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills