These are chat archives for RBMHTechnology/eventuate

Dec 2016
Daniel Bimschas
Dec 14 2016 18:32

Hey there :)

I’m currently trying to create an EventsourcedProcessor that reads an event from event log A and writes a newly created event to event log B. I want the newly created event to be equipped with an aggregate ID. Unfortunately, AFAICS the event that will be sent to event log B can only contain the same “customDestinationAggregateIds” as the original event from event log A (which btw. doesn’t have and IMO shouldn’t have an aggregate ID).

Am I right here that the API does not permit to realise such a scenario? Is this intended?

Fabian Koehler
Dec 14 2016 21:38

Event deletion is not implemented yet for Cassandra but is planned. Assuming the feature already exists, I'd store events of anonymous users in a separate log that is then cleaned up based on application defined criteria (retention time or whatever ...). I cannot make any promises ATM when we start working on that feature ... (it is a bit more involved as deletions in replicated event logs should be causally consistent).

@krasserm: A few more questions regarding deletion and some other things:

  1. Can you give some kind of estimate without any obligations on when physical deletion for C* will be implemented? Are we talking about a few months here or more years?
  2. Would it be possible to "hack" a soluton if I i.e. set the default TTL for the special eventlog where events should be deleted so they get removed automatically given that my Write and Read model could deal with this. Or would thist just crash the whole Framework i.e. during recovery? Another solution might be to directly deletey the events via the sequencenr from the C* log in a view although I would probably need to get hold of the parition nr then somehow.
  3. The delete method for deleting events is on the ReplicationEndpoint. Looking at the source it seems to be possible to send a Delete msg the EventLog Actor as well. We actually only have one location right now where local event logs seem to be enough or is it best practice to still create a ReplicationEndpoint? We have multiple deployed nodes which will access the same log but as I understood there is no explicit replication needed for that since both Nodes would access the same local event log?!
  4. Supposed I would logically delete events right now. Does that mean they would get physically deleted in C* once that is implemented? I would assume so.

Some generic questions:

  1. I get an error message about the default akka serializer being used when my events are persisted. What kind of serializers is recommended in Akka and easy to use for productin usage? Do I need to roll my own protobuf i.e.? or is there something more or less out of the box?
Fabian Koehler
Dec 14 2016 21:52