2016-09-13 4 views
0

이벤트 버전으로 시간이 가장 좋은 것으로 나타났습니다. 걱정에 대한 read sideevent order synchronization을하지 않고 필요할 때마다시간을 전역 고유 이벤트 버전으로 사용할 수 있습니까?

나는 다른 servers에 다른 event sourcesevents 완벽하게 독립적으로 병합 할 수 있습니다. 어떤 event (server 1)이 다른 쪽 (server 2)보다 먼저 발생했는지 알 수있는 global sequential event id generator이 필요합니다. 모든 판독면이 이에 따라 달라집니다.

은 긴 시간이 세계적으로 지금까지 순차적 이벤트 버전으로, 회사에서 다른 팀 event sources 또는 event readers을 분산 그리고 모든 사람들이 항상 contract에 릴레이 할 수있는 역할을 할 수 있습니다.

write side에서 subscribed read sides까지의 가장 간단한 알림 다음에 에서 쿼리 pulling the recent changes을 입력하면 모든 것을 단순화 할 수 있습니다.

내가 모르는 부작용이 있습니까?

+0

다른 컴퓨터의 시계가 표류 할 수 있습니다. 따라서 어디서나 동일한 시간에 의존 할 수는 없습니다. –

+0

@Sergio Tulentsev : 시간에 대한 진실의 근원이 아닙니까? – Mohsen

+1

원자 시계와 동기화를 설정할 수 있습니다. –

답변

1

시간이 실제로 증가하고 결정적인 숫자를 얻지 만 이벤트 버전 관리는 충돌을 방지하는 목적에 그치는 것이 아닙니다. 우리는 항상 이벤트 저장소에 새 이벤트를 커밋 할 때 새 이벤트 버전도 보내며 은 이어야하며 인 이전 버전이되어야하는 이벤트 저장소 쪽의 예상 버전과 일치해야한다고 말합니다. 하나. 두 사건 사이에 수천 또는 수천만의 진드기가있을 경우 - 나는 정말로 신경 쓰지 않는다. 이것은 내가 필요한 정보를주지 못한다. 그리고 나가서 한 행사를 놓친 경우 알고하는 것이 중요합니다. 그래서 나는 이 아니며은 집계/스트림별로 버전이있는 이벤트가있는 증분 카운터 이외의 것을 사용합니다.

+0

사용을 중단 할 의향이 없습니다. 새로운 이벤트가 스트림에 추가되는 동안 충돌을 제어 할 수있는 능력을 잃지 않을 것입니다. – Mohsen

+0

내가 얻으려고하는 것은 다른 이벤트 소스가 올바른 방법으로 일어 났을 때 다른 이벤트의 순서를 재조정 할 수있게하는 것입니다. 사이드 모듈을 더 읽기 좋게 읽으십시오. 쓰기 편이성 개발을보다 쉽게 ​​배포 할 수 있습니다. 다른 팀이 수행했습니다. – Mohsen

+0

EventStore (http://geteventstore.net)를 사용하는 경우 프로젝션 및 방출 링크 이벤트 및 구독 (필요한 경우)으로 쉽게 수행 할 수 있습니다. 어떻게 든이 접근법은 모든 유형의 이벤트 저장소에 적용될 수 있다고 생각하지만 예상은 쉽지 않습니다. –