arch-microservices
Microservices: decomposition, API gateway Kong/Traefik, service mesh Istio, circuit breakers, saga/outbox
Best use case
arch-microservices is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Microservices: decomposition, API gateway Kong/Traefik, service mesh Istio, circuit breakers, saga/outbox
Teams using arch-microservices should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/arch-microservices/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How arch-microservices Compares
| Feature / Agent | arch-microservices | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Microservices: decomposition, API gateway Kong/Traefik, service mesh Istio, circuit breakers, saga/outbox
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# arch-microservices
## Purpose
This skill enables the AI to design, decompose, and implement microservices architectures using specific tools like Kong/Traefik for API gateways, Istio for service meshes, and patterns like circuit breakers and sagas for resilience. Focus on breaking down monoliths into independent services while ensuring scalability and fault tolerance.
## When to Use
Apply this skill when scaling applications beyond a monolith, such as e-commerce platforms with high traffic, or distributed systems needing isolation (e.g., payment processing separate from user management). Use it for new projects requiring API management or when retrofitting legacy apps for microservices to improve resilience and deployment speed.
## Key Capabilities
- Decompose monoliths: Identify bounded contexts and split into services, e.g., using domain-driven design to separate user and order services.
- API Gateway: Configure Kong for routing and rate limiting, or Traefik for dynamic service discovery.
- Service Mesh: Deploy Istio to handle inter-service communication, including mTLS and traffic shifting.
- Circuit Breakers: Implement with Istio's Envoy proxies to prevent cascading failures by tripping breakers on high error rates.
- Distributed Transactions: Use saga patterns for long-running processes or outbox for event-driven consistency, ensuring atomicity across services.
## Usage Patterns
To decompose a monolith, analyze dependencies and create separate services: Start by mapping modules to microservices, then define APIs. For API gateways, route requests through Kong by defining services and routes. In service meshes, inject Istio sidecars into pods for automatic traffic management. For circuit breakers, configure Istio policies to detect failures and fallback. Use sagas by orchestrating transactions via a coordinator service. Example pattern: Wrap service calls in a saga for multi-step operations, committing or compensating based on outcomes.
## Common Commands/API
For Kong API Gateway:
- Create a service: `curl -X POST http://localhost:8001/services --data "name=my-service&url=http://myapp.com"`
- Add a route: `curl -X POST http://localhost:8001/services/my-service/routes --data "paths[]=/api" --data "methods[]=GET"`
- Config format: Use Kong's declarative config in YAML, e.g., `_format_version: "1.1" services: - name: my-service url: http://myapp.com`
For Istio Service Mesh:
- Install Istio: `istioctl install -y --set profile=demo`
- Apply a VirtualService for circuit breaking: `kubectl apply -f - <<EOF apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: my-service spec: hosts: - my-service retries: attempts: 3 EOF`
- API Endpoint: Use Istio's control plane via `istiod` pod, e.g., query metrics with `kubectl exec -it istiod-xyz -- curl localhost:15014/stats`
For Saga/Outbox:
- Implement saga: Use a library like Axon Framework; code snippet:
```java
Saga mySaga = Saga.builder().step(() -> orderService.createOrder()).step(() -> paymentService.process()).build();
mySaga.execute();
```
- Outbox pattern: In a service, log events to a database table and process via a separate worker; config: SQL table like `CREATE TABLE outbox (id UUID, payload JSONB);`
Auth requirements: Set environment variables like `$KONG_API_KEY` for authenticated API calls, e.g., `curl -H "apikey: $KONG_API_KEY" http://localhost:8001/services`.
## Integration Notes
Integrate Kong with Istio by running Kong as an Istio ingress gateway: Deploy Kong pod with Istio sidecar injection via Kubernetes annotation `sidecar.istio.io/inject: "true"`. For Traefik, configure as a Kubernetes ingress controller using a ConfigMap: `kubectl apply -f traefik-config.yaml` with content like `api: {} entryPoints: web: address: ":80"`. When combining with other skills (e.g., se-deployment), ensure services are deployed with compatible labels, such as `app: my-microservice`, and use `$ISTIO_NAMESPACE` env var for multi-namespace setups. For saga patterns, integrate with message queues like Kafka by publishing events: `kafka-producer.send("topic", eventPayload)`.
## Error Handling
Handle circuit breaker errors in Istio by configuring fallbacks in VirtualServices: Set `route: fault: abort: percentage: 100 httpStatus: 503` for simulated failures, then monitor with `kubectl logs istiod-xyz | grep error`. For sagas, implement compensating actions on failure, e.g., if an order fails, call a rollback method: Code snippet:
```java
try { saga.execute(); } catch (Exception e) { saga.compensate(); log.error("Saga failed: " + e.getMessage()); }
```
For API gateways, use Kong's plugins for error responses: Add a plugin with `curl -X POST http://localhost:8001/services/my-service/plugins --data "name=request-termination" --data "config.status_code=503"`. Always check logs with `kong logs` or `istioctl analyze` for validation errors, and use env vars like `$ERROR_WEBHOOK_URL` to notify external systems.
## Concrete Usage Examples
1. Decomposing and deploying a microservices app: For a blog platform, split into "posts" and "comments" services. Decompose by creating separate Docker images, then set up Kong: Command: `docker run -d -p 8000:8000 kong:latest; curl -X POST http://localhost:8000/services -d 'name=posts-service&url=http://posts-app:8080'`. Integrate with Istio: `istioctl create -f posts-virtualservice.yaml` to add circuit breaking.
2. Implementing resilience in a payment system: Use Istio for service mesh and saga for transactions. Configure a circuit breaker: `kubectl apply -f circuitbreaker.yaml` with content `apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule spec: trafficPolicy: connectionPool: tcp: maxConnections: 100 outlierDetection: consecutiveErrors: 5 interval: 10m`. For sagas, orchestrate payment flow: Code snippet:
```java
Saga paymentSaga = Saga.builder().step(() -> reserveFunds()).step(() -> processPayment()).build();
paymentSaga.executeWithCompensation();
```
## Graph Relationships
- Related to: se-deployment (for deploying and scaling microservices built with this skill)
- Connected to: se-scaling (for integrating auto-scaling with Istio's traffic management)
- Part of cluster: se-architecture (shares tags like "architecture" for broader system design)
- Links to: se-monitoring (for observing metrics from Kong and Istio setups)Related Skills
mvvm-architecture
Expert MVVM decisions for iOS/tvOS: choosing between ViewModel patterns (state enum vs published properties vs Combine), service layer boundaries, dependency injection strategies, and testing approaches. Use when designing ViewModel architecture, debugging data flow issues, or deciding where business logic belongs. Trigger keywords: MVVM, ViewModel, ObservableObject, @StateObject, service layer, dependency injection, unit test, mock, architecture
multi-ai-research
Comprehensive research and analysis using Claude (subagents), Gemini CLI, and Codex CLI. Multi-perspective research with cross-verification, iterative refinement, and 100% citation coverage. Use for security analysis, architecture research, code quality assessment, performance analysis, or any research requiring rigorous verification and multiple AI perspectives.
MCP Architecture Expert
Design and implement Model Context Protocol servers for standardized AI-to-data integration with resources, tools, prompts, and security best practices
gpt-researcher
Run GPT-Researcher multi-agent deep research framework locally using OpenAI GPT-5.2. Replaces ChatGPT Deep Research with local control. Researches 100+ sources in parallel, provides comprehensive citations. Use for Phase 3 industry/technical research or comprehensive synthesis. Takes 6-20 min depending on report type. Supports multiple LLM providers.
deep-research
Web research with Graph-of-Thoughts for fast-changing topics. Use when user requests research, analysis, investigation, or comparison requiring current information. Features hypothesis testing, source triangulation, claim verification, Red Team, self-critique, and gap analysis. Supports Quick/Standard/Deep/Exhaustive tiers. Creative Mode for cross-industry innovation.
database-architect
Database design and optimization specialist. Schema design, query optimization, indexing strategies, data modeling, and migration planning for relational and NoSQL databases.
brutal-deepresearch
Structured deep research pipeline with confirmation gates and resume support. Generates outline, launches parallel research agents, produces validated JSON results and markdown report.
architecture-paradigm-pipeline
Consult this skill when designing data pipelines or transformation workflows. Use when data flows through fixed sequence of transformations, stages can be independently developed and tested, parallel processing of stages is beneficial. Do not use when selecting from multiple paradigms - use architecture-paradigms first. DO NOT use when: data flow is not sequential or predictable. DO NOT use when: complex branching/merging logic dominates.
architecture-advisor
Helps solo developers with AI agents choose optimal architecture (monolithic/microservices/hybrid)
architecting-data
Strategic guidance for designing modern data platforms, covering storage paradigms (data lake, warehouse, lakehouse), modeling approaches (dimensional, normalized, data vault, wide tables), data mesh principles, and medallion architecture patterns. Use when architecting data platforms, choosing between centralized vs decentralized patterns, selecting table formats (Iceberg, Delta Lake), or designing data governance frameworks.
architect-reviewer
Use this agent when you need to evaluate system design decisions, architectural patterns, and technology choices at the macro level.
architect-agent
Coordinates planning, delegation, and evaluation across architect and code agent workspaces. Use when asked to "write instructions for code agent", "initialize architect workspace", "grade code agent work", "send instructions", or "verify code agent setup".