# マイクロサービス設計 (microservices-patterns)

> サービス分割、同期・非同期通信、サービスごとの DB、Saga、サーキットブレーカーなどの耐障害パターンの参考資料です。

- カテゴリ: [アーキテクチャ改善](https://www.myskills.tools/ja/categories/architecture-tuning/)
- 提供元: コミュニティ · Seth Hobson
- リポジトリ: https://github.com/wshobson/agents/tree/main/plugins/backend-development/skills/microservices-patterns (commit 0f73766)
- SKILL.md: https://github.com/wshobson/agents/blob/main/plugins/backend-development/skills/microservices-patterns/SKILL.md
- インストールコマンド: `npx skills add wshobson/agents --skill microservices-patterns`
- ライセンス: MIT
- 対応ツール: Claude Code, Codex, Cursor, Copilot, OpenCode
- 権限: read-repo ✓, write-files ✓, shell ✗, network ✗
- 状態: スキャン済み
- ルールスキャンですべてのリスクを検出できるわけではありません。インストール前にこのスキルの SKILL.md を読み、権限を確認してください。

## 基本ルール

各サービスは自分のデータを持ち、データベースを共有しません。

## 実行フェーズ

1. **サービス分割** — 業務能力や DDD のサブドメインで分割するか、ストラングラーフィグでモノリスから段階的に切り出します。
2. **通信方式を選ぶ** — REST・gRPC・GraphQL の同期呼び出しと、Kafka・メッセージキュー・Pub/Sub の非同期イベントから選び、API ゲートウェイも検討します。
3. **データ管理** — サービスごとに DB を持ち、サービス間のトランザクションは Saga と補償処理で結果整合性を保ちます。
4. **耐障害性を加える** — サーキットブレーカーで早期に失敗させ、指数バックオフで再試行し、バルクヘッドで資源を隔離して影響を抑えます。

## 権限の説明（SKILL.md より）

| 機能 | 必要か | 説明 |
|---|---|---|
| ファイル書き込み | 必要 | マイクロサービスを実装する際、参考例に沿ってサービス、イベント、Saga などのコードを書きます。 |
| コマンド実行 | 不要 | 設計の参考資料であり、コマンドの実行は求めていません。 |
| 外部通信 | 不要 | 外部ネットワークやサービスへのアクセスは求めていません。 |

## SKILL.md のフロントマター（YAML）

```yaml
---
name: microservices-patterns
description: Design microservices architectures with service boundaries, event-driven communication, and resilience patterns. Use when building distributed systems, decomposing monoliths, or implementing microservices.
---
```

ホーム: https://www.myskills.tools/ja/ · URL: https://www.myskills.tools/ja/skills/microservices-patterns/
