MSA 통신의 제로 페이로드(Zero Payload)

 

1. 제로 페이로드(Zero Payload)란?

 

이벤트 기반 아키텍처의 일종. "이벤트 발생" 신호만 전달하고, 데이터는 따로 저장소에서 조회하는 방식

 

 

2. 동작 예시

 

데이터를 포함한 기존 방식

 

주문이 생성되면 OrderService가 kafka를 통해 주문 정보를 ShippingService로 보냄

{
    "event": "ORDER_CREATED",
    "orderId": 12345,
    "userId": 67890,
    "totalPrice": 50000
}

 

주문 데이터가 많아지면 메시지 크기가 커지고 여러 서비스에 중복 저장될 수 있음

 

제로 페이로드 방식

 

ORDER_CREATED 이벤트만 보내고, 필요하면 idx로 직접 DB에서 조회

{
    "event": "ORDER_CREATED",
    "orderId": 12345
}

 

 

메시지 크기가 작아져서 성능이 향상되고 데이터 중복을 줄일 수 있다.

필요할 때만 데이터를 조회하니까 좀 더 효율적

 

단점

DB에 의존해서 DB 장애 시 데이터 조회 불가

이벤트 처리할 때 추가적인 DB 조회가 필요해서 오버헤드 발생 가능성

 

 

'Spring' 카테고리의 다른 글

멀티모듈 환경의 Swagger 설정  (2) 2025.03.04
멀티 모듈에서 타 모듈의 Bean 등록 오류  (0) 2025.02.28
MSA의 비동기적(Asynchronous) 통신  (0) 2025.02.28
MSA의 동기적 (Synchronous) 통신  (0) 2025.02.28
MSA란?  (0) 2025.02.27