HTTP 요청은 ClientProxy를 지나 메시지 패턴 호출이 된다

Orders Service는 외부에는 HTTP API처럼 보이지만, 내부에서는 Users Service에 패턴과 payload를 보내 응답을 받습니다.

1. HTTP

GET /orders/1/user

클라이언트는 주문 API만 호출합니다.

2. Controller

OrdersController

orderId를 userId로 바꾸고 내부 호출을 준비합니다.

3. ClientProxy

send(pattern, payload)

send('get_user_by_id', 1)
4. Handler

Users Service

@MessagePattern이 payload를 받아 사용자 정보를 반환합니다.

외부 계약

URL, method, HTTP status는 Orders Service가 책임집니다.

내부 계약

pattern 이름과 payload 형태는 두 서비스가 함께 맞춥니다.

응답 변환

Observable 결과를 HTTP 응답으로 바꿔 클라이언트에 돌려줍니다.

핵심: NestJS 마이크로서비스 예제의 본질은 “HTTP 컨트롤러가 내부 메시지 계약으로 위임한다”는 구조입니다.