home / skills / nickcrew / claude-cortex / microservices-patterns
This skill guides designing and operating resilient microservices, helping you decompose monoliths, define boundaries, and implement robust communication.
npx playbooks add skill nickcrew/claude-cortex --skill microservices-patternsReview the files below or copy the command above to add this skill to your agents.
---
name: microservices-patterns
description: Comprehensive microservices architecture patterns covering service decomposition, communication, data management, and resilience strategies. Use when designing distributed systems, breaking down monoliths, or implementing service-to-service communication.
---
# Microservices Architecture Patterns
Expert guidance for designing, implementing, and operating microservices architectures.
## When to Use This Skill
- Breaking down monolithic applications into services
- Designing distributed systems from scratch
- Implementing service communication patterns (sync/async)
- Managing data consistency across services
- Building resilient distributed systems
- Defining service boundaries and API contracts
## Core Principles
1. **Single Responsibility** - Each service has one reason to change
2. **Independent Deployability** - No coordination required for deployments
3. **Decentralized Data** - Each service owns its data exclusively
4. **Design for Failure** - Embrace failures, build resilience
5. **Automate Everything** - Deployment, scaling, and recovery
## Quick Reference
Load detailed patterns on-demand:
| Task | Load Reference |
| --- | --- |
| Define service boundaries and decompose monoliths | `skills/microservices-patterns/references/service-decomposition.md` |
| Implement service communication (sync/async) | `skills/microservices-patterns/references/communication-patterns.md` |
| Manage data consistency and transactions | `skills/microservices-patterns/references/data-management.md` |
| Build resilient systems (circuit breakers, retries) | `skills/microservices-patterns/references/resilience-patterns.md` |
| Add observability (tracing, logging, metrics) | `skills/microservices-patterns/references/observability.md` |
| Plan deployments and migrations | `skills/microservices-patterns/references/deployment-migration.md` |
## Workflow
### 1. Understand Requirements
- Map business capabilities and domains
- Assess scalability/resilience needs
- Identify team boundaries
### 2. Define Service Boundaries
Load `references/service-decomposition.md` for:
- Business capability decomposition
- DDD bounded contexts
- Service boundary validation
### 3. Design Communication
Load `references/communication-patterns.md` for:
- Synchronous: API Gateway, REST, gRPC
- Asynchronous: Message Queue, Pub/Sub, Event Sourcing
### 4. Manage Data
Load `references/data-management.md` for:
- Database per service pattern
- Saga distributed transactions
- CQRS read/write optimization
### 5. Build Resilience
Load `references/resilience-patterns.md` for:
- Circuit breakers
- Retry with exponential backoff
- Bulkhead isolation
- Rate limiting and timeouts
### 6. Add Observability
Load `references/observability.md` for:
- Distributed tracing
- Centralized logging
- Metrics and monitoring
### 7. Plan Deployment
Load `references/deployment-migration.md` for:
- Blue-Green, Canary, Rolling deployments
- Strangler Fig migration pattern
## Common Mistakes
1. **Distributed Monolith** - Tightly coupled, must deploy together
2. **Shared Database** - Multiple services accessing same database
3. **Chatty APIs** - Excessive synchronous service calls
4. **Missing Circuit Breakers** - No cascading failure protection
5. **No Observability** - Deploying without tracing/logging/metrics
6. **Ignoring Network Failures** - Assuming reliable network
7. **No API Versioning** - Breaking changes without versioning
**Fixes**: Load relevant reference files for detailed solutions.
## Resources
- **Books**: "Building Microservices" (Newman), "Microservices Patterns" (Richardson)
- **Sites**: microservices.io, martinfowler.com/microservices
- **Tools**: Kubernetes, Istio, Kafka, Kong, Jaeger, Prometheus
This skill provides a concise, practical catalogue of microservices architecture patterns for designing, implementing, and operating distributed systems. It guides service decomposition, communication models, data management, resilience strategies, observability, and migration approaches. Use it to make concrete architectural decisions when breaking apart a monolith or building a new distributed system.
The skill organizes patterns by concern: service decomposition, synchronous and asynchronous communication, data ownership and consistency, resilience techniques, observability, and deployment strategies. For each concern it explains the problem, applicable patterns, trade-offs, and actionable implementation steps. It also highlights common anti-patterns and corrective actions to avoid distributed-monolith failures and operational surprises.
How do I choose between synchronous and asynchronous communication?
Use synchronous calls for low-latency, request/response interactions and when strong consistency is required. Use asynchronous messaging to decouple services, improve resilience, and scale independently when eventual consistency is acceptable.
What is the best way to manage data consistency across services?
Prefer database-per-service to enforce ownership, and use patterns like sagas or compensating transactions for cross-service workflows. Consider CQRS to separate read and write models where it reduces contention and improves performance.
How do I avoid creating a distributed monolith?
Keep service boundaries clear, minimize synchronous chatty calls between services, enforce independent deployability with CI/CD, and ensure teams can own lifecycle and data for their services.