이벤트 스토어
Event store이벤트 저장소는 이벤트 저장에 최적화된 데이터베이스 유형이다.
개념적으로 이벤트 저장소에 문서나 정책의 이벤트만 저장된다. 그 이면의 생각은 서류나 정책이 이러한 사건에서 파생될 수 있다는 것이다. 이벤트(및 해당 데이터)는 데이터베이스에 저장되어야 하는 유일한 "실제" 사실들이다. 다른 모든 물체의 인스턴스화는 이러한 사건에서 파생될 수 있다. 그 코드는 기억 속에 있는 이 물체들을 인스턴스화한다. 이벤트 저장소 데이터베이스에서 인스턴스화되어야 하는 모든 개체가 데이터베이스에 저장되지 않음을 의미한다. 대신에 이러한 물체는 이벤트에 기초한 코드에 의해 메모리에서 '즉시 실행 중'으로 인스턴스화된다. 이러한 개체(예: 사용자 인터페이스에 표시)를 사용한 후에는 메모리로부터 인스턴스화된 개체가 제거된다.
예를 들어, 데이터베이스의 이벤트 스토어 개념을 보험증서나 연금 서류에 적용할 수 있다. 이러한 정책이나 서류에서 서류나 정책(개인, 파트너, 고용 등)을 구성하는 각 객체의 인스턴스화는 도출될 수 있으며 실제 사건에 기초하여 기억으로 인스턴스화할 수 있다.
이벤트 저장소 데이터베이스의 중요한 부분은 각 이벤트에는 다음과 같은 이중 시간 표시줄이 있다는 것이다. 이를 통해 이벤트 저장소는 이전에 이벤트 저장소 데이터베이스에 입력된 이벤트의 오류를 수정할 수 있다.
- 유효 날짜는 이벤트가 유효해진 날짜입니다.
- 거래일은 이벤트가 데이터베이스에 입력되는 날이다.
이벤트 저장소 데이터베이스의 또 다른 중요한 부분은 저장된 이벤트는 변경할 수 없다는 것이다. 일단 저장되면 오류 이벤트도 더 이상 변경되지 않는다. 이러한 이벤트를 변경하거나 수정하는 유일한 방법은 새 이벤트를 새로운 값으로 인스턴스화하고 이중 시간 표시 막대를 사용하는 것이다. 수정 이벤트는 원래 이벤트의 새로운 값을 가질 수 있으며, 수정 이벤트의 이벤트 데이터는 있지만 거래 날짜는 다를 수 있다. 이 메커니즘은 보정이 발생하기 전의 시간 동안에도 시간의 각 순간에 재현성을 보장한다. 또한 (필요한 경우) 잘못된 사건에 근거한 상황을 재현할 수 있도록 한다.
이벤트 스토어 개념의 한 가지 이점은 과거 이벤트(이전 이벤트 이전에 효력이 발생하여 무효화할 수 있는 이벤트)의 영향을 다루는 것이 훨씬 쉽다는 것이다. 일반 데이터베이스에서, 이전의 잘못된 이벤트를 수정하기 위해 역방향 이벤트를 처리하는 것은 종종 이전의 모든 잘못된 트랜잭션과 개체를 롤백하고 새롭고 올바른 트랜잭션과 개체를 롤백하는 결과를 낳기 때문에 고통스러울 수 있다. 이벤트 스토어에는 새로운 이벤트(및 그에 상응하는 사실)만 저장된다. 그러면 그 코드는 기억 속에 있는 새로운 사실에 근거하여 거래와 사물을 재조정할 것이다.
이벤트 스토어는 잘못된 상황을 롤백하고 새롭고 정확한 상황을 롤백할 필요가 없다는 점에서 코드를 단순화할 것이다.
단점은 코드가 특정 정책 문서에 대해 서비스 호출을 수신할 때마다 이벤트를 기반으로 메모리에 있는 모든 개체를 다시 인스턴스화할 필요가 있다는 것일 수 있다.
외부 링크
- DB-Engines 인기별 이벤트 스토어 순위, 매월 업데이트
