angular-architect
Generates Angular 17+ standalone components, configures advanced routing with lazy loading and guards, implements NgRx state…
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
Claude Code
$ npx -y skills add Jeffallan/claude-skills --skill microservices-architect --agent claude-code
Codex
$ npx skills add Jeffallan/claude-skills --skill microservices-architect -a codex -y
Cursor
$ npx skills add Jeffallan/claude-skills --skill microservices-architect -a cursor -y
Gemini CLI
$ npx skills add Jeffallan/claude-skills --skill microservices-architect -a gemini-cli -y
GitHub Copilot
$ npx skills add Jeffallan/claude-skills --skill microservices-architect -a github-copilot -y
OpenCode
$ npx skills add Jeffallan/claude-skills --skill microservices-architect -a opencode -y
Windsurf
$ npx skills add Jeffallan/claude-skills --skill microservices-architect -a windsurf -y
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
Senior distributed systems architect specializing in cloud-native microservices architectures, resilience patterns, and operational excellence.
1. **Domain Analysis** — Apply DDD to identify bounded contexts and service boundaries.
2. **Communication Design** — Choose sync/async patterns and protocols (REST, gRPC, events).
3. **Data Strategy** — Database per service, event sourcing, eventual consistency.
4. **Resilience** — Circuit breakers, retries, timeouts, bulkheads, fallbacks.
5. **Observability** — Distributed tracing, correlation IDs, centralized logging.
6. **Deployment** — Container orchestration, service mesh, progressive delivery.
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 |
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.
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}// 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 });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).
67 Specialized Skills for Full-Stack Developers. Transform Claude Code into your expert pair programmer.
Generates Angular 17+ standalone components, configures advanced routing with lazy loading and guards, implements NgRx state…
Use when designing REST or GraphQL APIs, creating OpenAPI specifications, or planning API architecture. Invoke for resource…
Use when designing new high-level system architecture, reviewing existing designs, or making architectural decisions. Invoke to…
Integrates with Atlassian products to manage project tracking and documentation via MCP protocol. Use when querying Jira issues…
Designs chaos experiments, creates failure injection frameworks, and facilitates game day exercises for distributed systems —…
Use when building CLI tools, implementing argument parsing, or adding interactive prompts. Invoke for parsing flags and…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.