Event Driven과 Event sourcing의 차이점은 무엇입니까?


13

도메인 기반 디자인 (DDD)을 공부하고 있는데 이벤트 중심 및 이벤트 소싱이라는 용어를 사용했습니다. 생산자에서 소비자에게 이벤트를 게시하고 로그를 저장하는 것에 관한 것이므로 내 질문은 다음과 같습니다.

Event Driven과 Event sourcing의 차이점은 무엇입니까?

답변:


16

이벤트 기반 아키텍처 라는 용어 는 주로 또는 독점적으로 이벤트를 통해 통신하는 구성 요소를 기반으로하는 모든 종류의 소프트웨어 시스템에 사용됩니다. 예를 들어, 널리 사용되는 플랫폼의 거의 모든 주요 GUI 프레임 워크는 이벤트 중심 메커니즘을 사용합니다. "이벤트"라는 용어는 일반적으로이 문맥에서 "알림"을 의미합니다.

이벤트 소싱 은 전체 응용 프로그램 상태가 일련의 이벤트로 저장된 시스템을 지칭하는 훨씬 특별한 용어입니다. 잘 알려진 널리 알려진 예는 트랜잭션 로그에 상태 변경 사항을 저장하는 트랜잭션 데이터베이스 시스템입니다. 여기서 "이벤트"라는 용어는 "알림"뿐만 아니라 "상태 변경"을 의미합니다.

따라서 "이벤트 소싱"을 핵심 메커니즘으로 사용하는 모든 시스템은 균등 한 시스템으로 볼 수 있지만 일반적으로 그 반대는 아닙니다.


당신의 대답을 상향 조정했습니다. 나는 이것을 지금 스스로 찾고 있으며, 당신의 대답을 먼저 보았습니다. "전체 응용 프로그램 상태는 시퀀스 이벤트로 저장됩니다"라는 문구를 보면 "응용 프로그램의 상태는 현재 양식으로 직접 유지되지 않습니다. 대신 각 작성, 업데이트 또는 삭제 작업이 수행됩니다. 개체 또는 모델에서 '이벤트'로 간주되며 직접 지속되는 '이벤트'입니다. 따라서 개체의 현재 상태를 얻으려면 해당 이벤트를 재생하여 복사본을 재구성해야합니다. " 이 소리가 정확합니까?
Panzercrisis

1
@Panzercrisis : "이벤트 소싱 은 응용 프로그램 상태에 대한 모든 변경 사항 을 일련의 이벤트로 저장합니다."라고 작성해야 합니다. (파울러처럼). 모든 객체는 일반적으로 "현재"상태이며,이 상태는 이벤트 시퀀스 자체뿐만 아니라 지속될 수도 있습니다 (지연 될 수 있음). 자세한 설명은 Fowler의 기사를 읽는 것이 좋습니다.
Doc Brown
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.