서비스는 동기적으로(REST나 gRPC를 통한 요청/응답) 또는 비동기적으로(Kafka나 RabbitMQ 같은 브로커를 통한 메시지/이벤트) 통신합니다.
동기(요청/응답)
호출자는 응답을 기다립니다. 단순하고 직관적이지만 가용성을 결합시킵니다. 즉, 피호출자가 다운되면 호출자도 영향을 받습니다.
http
GET /orders/42 HTTP/1.1
Host: orders-service
Accept: application/json
비동기(메시징/이벤트)
발신자는 메시지를 발행하고 다음 작업으로 넘어갑니다. 소비자는 나중에 그것을 처리합니다. 이는 서비스를 시간적으로 분리합니다.
text
Order Service ──"OrderPlaced" 발행──▶ [ Broker ] ──▶ Email Service
│
└──▶ Inventory Service
