이벤트 중심 마이크로 서비스 아키텍처의 변경 사항을 처리 할 수있는 옵션을 연구하는 리서치 프로젝트를 진행하고 있습니다.
우리가 4 가지 다른 서비스를받는 애플리케이션을 가지고 있다고 가정 해 봅시다. 이러한 각 서비스에는 로컬 데이터를 저장하기위한 자체 데이터베이스가 있습니다.
이 설정에서 4 개의 서비스는 이벤트 버스를 사용하여 서로 통신합니다. 따라서 서비스에서 어떤 일이 발생하면 이벤트를 게시합니다. 해당 이벤트에 관심이있는 다른 모든 서비스는 고유 한 방식으로 처리합니다.
이 경우 아키텍처의 서로 다른 서비스는 이러한 이벤트의 내용 (속성 등)에 대한 "계약"을 가져야합니다. 따라서 서비스는 이러한 이벤트에 "느슨하게 결합 된 종속성"을 갖습니다.
내 질문은 : 이 이벤트에서 변경 사항을 어떻게 처리 할 수 있습니까?
서비스 A가 응용 프로그램에 새 사용자를 등록한다고 가정 해 봅시다. 따라서 ""UserRegistered "이벤트를 전송합니다. 서비스 B가 해당 이벤트를 선택하여 처리하지만 서비스 C 팀의 일부 개발자는 등록 된 사용자의 성별도 필요하다고 결정했습니다. 따라서 이벤트가 변경되고 속성 성별 "UserRegistered"이벤트에 추가됩니다.
서비스 B가 재배치하지 않고 해당 추가 속성으로 동일한 이벤트를 계속 픽업 할 수 있도록하려면 어떻게해야합니까?
그리고이 문제에 접근 한 다음 이러한 이벤트를 버전 화하는 다른 방법이 있습니까?