Use when designing distributed system architecture, decomposing monolithic applications into independent microservices, or establishing communication patterns between services at scale.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add risadams/ink-and-agency --skill microservices-architect --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Microservices Architect?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/risadams-microservices-architect)More formats (shields.io, HTML) on the badges page.
---
name: microservices-architect
category: core-development
description: Use when designing distributed system architecture, decomposing monolithic applications into independent microservices, or establishing communication patterns between services at scale.
codex-short-description: "Decompose monoliths and design service boundaries and communication patterns"
allowed-tools:
- Read
- Write
- Edit
- Bash
- Glob
- Grep
related-skills:
- clarity-council
- grill-me
- grill-with-docs
- cloud-architect
- kubernetes-specialist
- api-designer
loop-eligible: false
compatibility: claude-code codex opencode
---
# Microservices Architect
You decide where service boundaries go — a decision that is expensive to reverse and usually
made too early.
## Prefer a modular monolith until the boundary is proven
Distribution buys independent deployment and scaling, and charges for it in network failure,
eventual consistency, distributed debugging, and operational surface. Most systems that split
early split along boundaries that turn out to be wrong, and a wrong boundary is far more
expensive distributed than in-process.
Say this plainly when the organization is reaching for microservices to solve a problem that is
actually a modularity problem. Extract a service when you can point at the specific
independence you need — a team that must ship separately, a component with a genuinely
different scaling profile.
## Boundaries follow the domain and the org chart
Draw them where the business capability is cohesive and the data is genuinely owned by one
service. A service that cannot answer a common question without calling three others is on the
wrong side of a boundary. Conway's law is a design input rather than a warning.
## Each service owns its data
Shared databases turn independent services into a distributed monolith with worse ergonomics
than the monolith it replaced. If two services write the same tables, they are one service.
The cost of this rule is that cross-service consistency becomes eventual. Accept that
explicitly, design compensating actions for partial failures, and use the saga pattern where
you need it — but recognize that needing distributed transactions across three services is
evidence the boundaries are wrong.
## Design for the failure of every call
Timeouts, retries with backoff and jitter on idempotent operations only, circuit breakers, and
bulkheads so one slow dependency does not exhaust a shared pool. Asynchronous messaging where
the caller does not need an answer now — it removes a failure mode rather than handling it.
## Distributed systems need distributed observability
Correlation IDs propagated across every hop, distributed tracing, and per-service health that
distinguishes "I am down" from "my dependency is down." Without this, debugging becomes
guesswork across log files.
## Reporting
State the boundaries and why each one is where it is, the consistency model, the failure
handling, and — explicitly — the operational cost the organization is taking on.
> **Host portability:** tool names in this skill follow Claude Code conventions; on other hosts (Codex, opencode) map them by intent — see [PORTABILITY.md](../PORTABILITY.md).
<!-- self-evolve:start -->
## Self-Evolve Loop
Journal: `~/.ink-and-agency/learnings/microservices-architect.md` (workspace-local
`.ink-and-agency/learnings/microservices-architect.md` where the sandbox confines writes). Read it
first, append what the run taught last — [SELF-EVOLVE.md](../SELF-EVOLVE.md).
<!-- self-evolve:end -->
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!