These are chat archives for RBMHTechnology/eventuate

1st
May 2017
Gabriel Giussi
@gabrielgiussi
May 01 2017 18:59
Hi @krasserm how are you? I've been investigating the causality filter to see if I can help with the causal stability feature. I have a couple of questions.
  • Why causality filter is being executed twice at the source? First when ReplicationRead is received and after when ReplicationReadSuccess is received. The comment says "Post-exclude events using a possibly updated version vector received from the target" but I can't understand when that updated version vector could arrive between a ReplicationRead and its corresponding ReplicationReadSuccess.
  • Why EventLog.replicaVersionVectors is needed if ReplicationRead includes the currentVersionVector of the target?
  • Why is fromSequenceNr included in ReplicationRead? Isn't sequenceNr local to an event log? I assumed that ReplicationRead only included currentVersionVector and then all (1) the events were causaly filtered, instead only events between fromSequenceNr and toSequenceNr are filtered.
  • Filtering all events like I've said in (1) will not be very performant, that's why I asked for causal stability, however, if Eventuate is using fromSequenceNr to avoid this I don't see what will be the benefit of causal stability in replication like I do for Pure OP based CRDT where the goal is reduce the size in memory of CRDTs discarding timestamps that are no longer needed.