1. Microservice識別プロセスにおけるシステムコマンドの役割
- MSAでは、各サービスが実行すべき主要な機能(タスク)を明確に定義することが重要!
- そのために、システムコマンドを定義してサービスの境界を設定し、ビジネスおよびエンジニアリングの特性を反映した設計を進めます。
2. Microservice識別のためのシステムコマンドの例
- 特定の役割(顧客、従業員など)が実行する主要な操作(コマンド)を基にサービスを識別
- 同じカテゴリのコマンドをグループ化すると、独立したサービスとして定義される可能性が高い
ドメイン | システムコマンド(Microservice候補の識別基準) |
---|---|
会員サービス |
createMembership (会員登録) |
決済サービス |
rechargeYJMoney (ポイントチャージ)、payWithYJMoney (ポイント決済) |
送金サービス |
remittanceMoney (送金) |
精算サービス |
settlement (精算処理) |
手数料管理サービス |
modifyCommission (手数料変更) |
3. Microservice識別のための考慮事項
(1) サービスの独立性と境界の設定
-
会員サービス
、決済サービス
、送金サービス
など、それぞれを独立したドメインとして分離 - 各ドメインは独立してデプロイ可能であり、データとビジネスロジックを分離する必要がある
(2) ビジネスおよびエンジニアリングの特性を考慮
-
精算サービス:
- 大量の決済データを安定的に処理する必要がある → リトライ(再試行)、キューイング、精算サイクル/金額制限の考慮すべき
-
外部システムの呼び出しが多いサービス(例:決済、送金)
- 呼び出し失敗の可能性が高い → 成功/失敗の記録およびリトライの実装が必要
- 呼び出しごとに手数料が発生 → 最適化が必要(例:呼び出し回数の制限、バッチ処理など)
4. 結論:Microservice識別のためのシステムコマンド定義の意義
・各サービスの役割と境界を明確に設定するために、システムコマンドの定義が不可欠
・ビジネスおよびエンジニアリング要件を反映し、MSAアーキテクチャを最適化
・Microservice間の結合度を下げ、独立した運用が可能な設計を実現
このようなシステムコマンドベースのサービス識別を通じて、効果的なMSAアーキテクチャを構築できる!