microservices
Service boundaries, communication patterns, event sourcing, CQRS, and distributed tracing
来源信息
- 仓库
- cosmicstack-labs/mercury-agent-skills
- 最近来源活动
- 2026年5月10日 06:29
- 检测到的 SKILL.md 语言
- 英语
- 星标
- 471
- 分支
- 62
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- name
- microservices
- description
- Service boundaries, communication patterns, event sourcing, CQRS, and distributed tracing
- metadata
- {"author":"cosmicstack-labs","version":"1.0.0","category":"backend","tags":["microservices","architecture","distributed-systems","event-sourcing","cqrs"]}
# Microservices
Design and operate microservice architectures.
## Service Boundaries
### Bounded Context (DDD)
- Each service owns a domain concept
- Service has its own database (no DB sharing)
- Communication via API or events
- Avoid "shared" services (leads to tight coupling)
### Service Sizing
- **Too small**: Nano-services — high overhead, hard to debug
- **Too large**: Distributed monolith — worst of both worlds
- **Right size**: Team can build, test, deploy independently
## Communication Patterns
| Pattern | Type | When |
|---------|------|------|
| REST | Sync | Request-response, CRUD |
| gRPC | Sync (fast) | Internal, high throughput |
| Event | Async | Decoupled workflows |
| Message Queue | Async | Buffered, reliable delivery |
### Event-Driven Communication
```
Service A → Event Bus → Service B
→ Service C
→ Service D
```
Benefits: eventual consistency, loose coupling, replayability.
## CQRS (Command Query Responsibility Segregation)
- Separate read and write models
- Queries go to optimized read stores (materialized views)
- Commands go to write stores (normalized)
- Eventually consistent between them
## Distributed Tracing
- Correlation ID passed across all services
- Use OpenTelemetry for instrumentation
- Trace each request: Service → Queue → DB → External API
- Visualize in Jaeger or Zipkin
- Alert on traces that exceed latency SLOs
## Anti-Patterns to Avoid
❌ Shared database between services
❌ Sync chains (A → B → C → D blocking)
❌ Distributed monolith (microservices but deployed together)
❌ Absent monitoring ("it works in dev")
❌ Premature decomposition (start monolith, extract carefully)
在 GitHub 查看