メインコンテンツまでスキップ

Integration Styles(通信・連携方式)

Integration Styles は、サービス同士・外部システムとどのように通信し、連携するか を定めるアーキテクチャ層を扱う。

✅ このカテゴリが扱う問題​

  • サービス同士の通信方式をどう選ぶか
  • 同期 API の遅延・スケール問題
  • イベント駆動の複雑さ
  • Saga による分散トランザクションの扱い
  • API 境界の契約(Contract)管理

✅ Integration Styles の代表スタイル​

● REST / gRPC / GraphQL​

  • 同期通信の基本方式
  • REST:最も広く普及、CRUD 向け
  • gRPC:高速、型安全、マイクロサービス向け
  • GraphQL:フロントエンド最適化(BFF と相性が良い)

● Event-Driven Architecture(EDA)​

  • 非同期イベントで疎結合化
  • 高スケール/高可用構成に向く
  • ただし可観測性と整合性の複雑度は上がる

● Saga Pattern(オーケストレーション/コレオグラフィ)​

  • 分散トランザクションの制御
  • 決済・予約など「複数サービスをまたぐ整合性」に必須

● API Gateway / BFF​

  • クライアント向け API の統合と最適化
  • 認証・ルーティング・レート制限を集約

● Service Mesh​

  • 通信をアプリから分離し、ネットワークレイヤで制御
  • mTLS, リトライ, Circuit Breaker, トレーシングなどを自動化

● Outbox Pattern(Transactional Outbox)​

  • DB トランザクション内でイベントをバッファリング
  • アプリ更新とイベント配送の不整合を解消
  • マイクロサービスで最も実務的な整合性確保手法

● Change Data Capture(CDC)​

  • DB の変更ログを直接ストリーム化
  • アプリを介さずイベントを生成
  • 高スループットのデータ複製やパイプラインに向く

✅ このカテゴリの読み方​

  1. 同期/非同期の使い分け
  2. “整合性”と“遅延”のトレードオフ
  3. BFF や Mesh による複雑さの吸収レイヤの役割

✅ 他の階層との関係​