This repository has been archived by the owner on Jun 1, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 103
Causal event delivery #66
Labels
Comments
krasserm
added a commit
that referenced
this issue
Jul 22, 2015
- no causal event storage order in logs required - needed for more scalable event log replication - causal delivery can be turned on/off per actor - closes #66
An initial implementation (M1) exists on branch wip-66-causal-event-delivery. In this implementation, event-sourced actors and views re-order events before delivering them to their event handler. It is assumed that an actor that handles a given event also handles all causally related events. Hence, these causally related events
This is the case for some applications, such as Eventuate's operation-based CRDTs, for example. However, the above assumptions cannot be made in general because application-specific replication filters, routings and event handlers can prevent causally related events from being handled by a certain actor. |
Closed
Closed
Eventuate will continue storing events in causal order. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Storing events in an order that is consistent with their causal relationship can be inefficient. When giving up causal storage order, Eventuate must re-order events before delivering them in order to preserve causality on application-level.
Applications should also also be able to disable causal delivery. This is useful for actors that manage Counter or MV-Register CRDTs, for example, for which causal delivery order is not relevant. Other application-specific actors and/or views may also want to turn off causal delivery if their state update operations commute.
The text was updated successfully, but these errors were encountered: