165
4
장
마이크로서비스 통신 방식
민감한 데이터를 볼 수 있는 마이크로서비스의 범위를 제한하려는 경우 이 문제가 발생할 수
있다. 이 문제를 해결하는 방법은 두 가지 유형의 이벤트를 보내는 것이다. 한 이벤트는
PII
를
포함하고 일부 마이크로서비스에서 볼 수 있다. 다른 이벤트는
PII
를 제외하고 더 광범위하게
브로드캐스트할 수 있다. 이는 서로 다른 이벤트의 가시성을 관리하고 두 이벤트를 발송해야
한다는 측면에서 복잡성이 가중된다. 마이크로서비스가 첫 번째 종류의 이벤트를 보내고 두 번
째 것을 보내기 전에 죽는다면 어떻게 될까?
또 다른 고려 사항은 데이터를 이벤트에 포함한다는 것은 외부 세계와 계약의 한 부분이 된다
는 사실이다. 이벤트에서 필드를 제거하면 외부 당사자가 중단될 수 있음을 알아야 한다. 정보
은닉은 이벤트 기반 협업 방식에서도 중요한 개념이다. 이벤트에 더 많은 데이터를 추가할수록
외부 당사자는 이벤트에 대해 더 많은 가정을 해야 한다. 필자의 일반적 규칙은 요청 및 응답
API
를 통해 동일한 데이터를 공유할 수 있다면 이벤트에 정보를 넣어도 괜찮다는 것이다.
4.8.34.8.3
적용 대상 적용 대상
이벤트 기반 협업 방식은 정보를 브로드캐스트하길 원하는 상황과 의도를 뒤집는 상황에서 효
과가 있다. 다른 일을 지시하는 모델에서 벗어나 다운스트림 마이크로서비스가 스스로 작업하
게 만드는 것은 상당한 매력이 있다.
다른 요소보다 느슨한 결합에 더 중점을 두는 상황이라면 이벤트 기반 협업은 분명 매력적일
것이다.