더북(TheBook)

멱등한 메시지 핸들러 작성

동일한 입력 값을 반복 호출해도 아무런 부수 효과가 없을 때 멱등하다(idempotent)고 말합니다. 애플리케이션의 메시지 처리 로직이 멱등하면 중복 메시지는 전혀 해롭지 않습니다. 가령 이미 취소된 주문을 다시 취소하는 작업도 그렇고, 클라이언트가 전달한 ID로 주문을 생성하는 작업도 멱등합니다. 메시지 재전송 시 메시지 브로커가 순서를 유지한다는 전제하에 멱등한 메시지 핸들러는 여러 번 실행해도 별 문제가 없습니다.

그러나 이렇게 멱등한 애플리케이션 로직은 실제로 별로 없습니다. 메시지를 다시 전송하면 순서를 보장하지 않는 메시지 브로커를 사용 중일지도 모릅니다. 중복 메시지와 순서가 안 맞는 메시지는 오류를 일으키기 때문에 중복 메시지를 솎아 내는 메시지 핸들러가 필요합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.