85
3
장
통신 및 데이터 규약
3.3.5
이벤트 크기 최소화
이벤트는 크기가 작고, 잘 정의되어 있고, 쉽게 처리할 수 있어야 좋지만, 때로는 많은 콘텍스
트 정보가 담긴 덩치 큰 이벤트도 발생할 수 있습니다. 이벤트와 연관된 데이터 구성 요소가 아
주 많거나, 발생한 사건 자체가 아주 큰 경우도 있겠죠.
몸집이 큰 이벤트를 설계할 때에는 몇 가지 고려할 부분이 있습니다. 우선 데이터가 해당 이벤
트와 직접 관련이 있는지 확인하세요. 만일을 위해 이벤트에 부가 데이터를 붙일 수는 있지만
실제로 다운스트림 컨슈머가 거의 사용할 일이 없을지도 모릅니다. 모든 이벤트 데이터가 정말
다 직접 연관되어 있다면 한 걸음 뒤로 물러나 자신의 문제 공간을 살펴보세요. 여러분의 마이
크로서비스가 꼭 데이터에 직접 접근해야 하나요? 그 서비스가 하는 일이 너무 많지는 않은가
요? 경계 콘텍스트를 검토해야 할 수도 있습니다. 부가적인 기능을 별도의 서비스로 나누어 서
비스 범위를 축소하는 것도 방법입니다.
그래도 정말 어쩔 수 없는 경우는 있습니다. 가령, 이벤트 프로듀서가 메시지 하나에 굉장히 큰
출력 파일 (가령, 고해상도 이미지 )을 담아 이벤트 스트림에 생산할 때가 그렇겠죠. 실데이터
를 포인터로 가리키는 방법이 있긴 하지만 진실 공급원이 여럿 존재하고 페이로드가 가변적인
상황에서는 시스템 외부로부터 불변의 기록 장부를 이용해 데이터를 지킬 수 없으므로 가급적
삼가는 것이 좋습니다.
3.3.6
미래의 컨슈머도 이벤트 설계에 반영
새 이벤트를 설계할