hydraia
Use whenever the user asks to build, add, implement, or change a feature or functionality — or brings a user story or ticket to analyze, reports a bug or…
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
$ npx -y skills add jdanigo/hydraia --skill microservices-architect --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/microservices-architectContext preview
The summary Claude sees to decide when to auto-load this skill.
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
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 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).
An agentic development harness for Claude Code. **One command runs the entire feature pipeline** — it collaborates with you on the design, then builds autonomously: plan, execute, double-review, and verify.
Repo: jdanigo/hydraia
Use whenever the user asks to build, add, implement, or change a feature or functionality — or brings a user story or ticket to analyze, reports a bug or…
Use when a design decision is made that is expensive to reverse, affects multiple components, or rejects a plausible alternative — record it as an Architecture…
Teaches the AI to design like a high-end agency. Defines the exact fonts, spacing, shadows, card structures, and animations that make a website feel expensive.…
Use when designing or reviewing an API surface — REST, GraphQL, or gRPC. Contract-first methodology: the contract artifact (OpenAPI 3.1, SDL, proto3) is…
Design banners for social media, ads, website heroes, creative assets, and print. Multiple art direction options with AI-generated visuals. Actions: design,…
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent,…