サービスは同期的(REST または gRPC 上のリクエスト/レスポンス)または非同期的(Kafka や RabbitMQ のようなブローカーを通じたメッセージ/イベント)のいずれかで通信します。
同期的(リクエスト/レスポンス)
呼び出し元は応答を待ちます。シンプルで直感的ですが、可用性を結合します — 呼び出された側がダウンしている場合、呼び出し元は影響を受けます。
http
GET /orders/42 HTTP/1.1
Host: orders-service
Accept: application/json
非同期的(メッセージング/イベント)
送信元はメッセージを公開して進みます。コンシューマーは後で処理します。これはサービスを時間的に分離します。
text
Order Service ──publish "OrderPlaced"──▶ [ Broker ] ──▶ Email Service
│
└──▶ Inventory Service
