These are chat archives for RBMHTechnology/eventuate

24th
Feb 2018
gabrielgiussi
@gabrielgiussi
Feb 24 2018 17:41
I have another question regarding the EventsourcedView that will use to maintain the RTM and finally emit the TCStable. I've asked before to Martin if TCStable should be a command or an event and we have concluded that it should be a command. However the problem I now see with that is that being a command we can not assure that the CRDT Actor has actually seen the events (aka operations) before processing the command, while being an event we were saying that the TCStable is in the causal future of the events that are stable at that TCStable.
Does it makes sense?
gabrielgiussi
@gabrielgiussi
Feb 24 2018 17:55
The failing scenario will be like this:
  1. Location A writes event with VectorTime(A -> 1)
  2. Locations B receives replicated event and calls TCSBActor.onEvent
  3. TCSBActor.onEvent(VectorTime(A -> 1) emits (as a command) TCStable(VectorTime(A -> 1))
  4. CRDTActor receives TCStable command and perform stability logic
  5. CRDTActor receives event with VectorTime(A -> 1)
gabrielgiussi
@gabrielgiussi
Feb 24 2018 18:48
Note: since stability is per location, if TCStable is persisted as an event will be replicated to all locations but we could just discard it when lastProcessId != current processId.