7장. 이벤트 디자인하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
이벤트 기반 아키텍처를 위해 이벤트를 설계하는 방법에는 여러 가지가 있습니다. 그러나 어떤 방법은 다른 방법보다 이벤트 기반 데이터 메시에서 사용하기에 더 적합합니다. 이 장에서는 이벤트 기반 데이터 제품을 위한 이벤트 설계를 위한 최상의 전략과 그 과정에서 마주칠 수 있는 수많은 함정을 피하는 방법을 다룹니다.
이벤트 유형 소개
모든 이벤트 설계의 근간이 되는 이벤트는 크게 두 가지 유형 "상태 이벤트 및 이벤트 전달 상태 전송"에서 처음 소개한 상태 이벤트와 이 장에서 더 자세히 다룰 델타 이벤트입니다.
그림 7-1은 델타에 따라 주기적으로 한 상태에서 다른 상태로 바뀌는 정상 상태의 간단한 구형파를 보여줍니다. 이 구형파와 유사하게 이벤트를 모델링하여 상태 자체 또는 한 상태에서 다른 상태로 전환되는 에지를 캡처합니다.
그림 7-1. 변경 중 상태 및 델타
시스템에서 발생하는 모든 문제에는 세 가지 단계가 있습니다:
-
초기 상태
-
최종 상태를 생성하기 위해 초기 상태를 변경하는 델타입니다.
-
최종 상태(다음 변경 주기의 초기 상태이기도 함)
우리가 접하는 대부분의 이벤트는 상태 또는 델타로 완전히 분류할 수 있습니다. 이러한 방식으로 이벤트를 바라보면 우려 사항을 구분하고 설계 노력을 집중하는 데 도움이 됩니다:
- 상태 이벤트
-
상태 이벤트는 특정 시점에 엔티티의 상태를 완전히 설명하며 도메인 간에 데이터 제품을 통신하는 데 가장 적합한 선택입니다. 상태 이벤트는 일반적으로 이벤트 기반 데이터 메시에서 사용하기에 가장 유연하고 유용한 이벤트 유형입니다.
- 델타항공 이벤트
-
여기에는 상태 간 전환( )을 설명하며 일반적으로 변경된 내용에 대한 정보만 포함됩니다. 델타 이벤트는 많은 이벤트 기반 애플리케이션 개발자가 가장 먼저 접하는 이벤트 유형이라는 특징이 있습니다. 그러나 이러한 이벤트는 곧 설명하겠지만 일반적으로 이벤트 기반 데이터 메시에는 적합하지 않습니다.
각각의 특성을 가진 하이브리드 이벤트가 있을 수 있지만, 원치 않는 강한 결합을 유발할 수 있기 때문에 덜 일반적인 경향이 있습니다. 이에 대해서는 이 장의 뒷부분에서 자세히 설명하겠습니다.
먼저 상태 이벤트에 대해 살펴보겠습니다.
상태 이벤트 및 이벤트 전달상태 전송에 대한 확장 기능
"상태 이벤트와 이벤트 전달 상태 전송"에서는 상태 이벤트와 ECST에 대해 소개했습니다. 다시 설명하자면, 상태 이벤트는 관계형 데이터베이스의 행처럼 정확한 시점에 엔티티의 현재 상태 를 표시합니다. ECST를 사용하면 이벤트 스트림의 모든 소비자가 자체 도메인 경계에서 필요한 모든 데이터를 구체화, 집계 및 저장하여 적절하다고 판단되는 ...