These are chat archives for RBMHTechnology/eventuate
Global-scale event sourcing and event collaboration with causal consistency
Since write batches are deleted asynchronously by the application (at the end of a write) it may be that the writer is re-attempting to write them after a restart if it crashed before deleting them. After restart,
read() is called which allows the application to determine which batches have already been written. You can to take that information to pre-process the write batches in order to avoid constraint violations. OTOH, it may be ok for your application to just catch them, this can be a perfectly fine mechanism for idempotency, if the sequence number is part of the primary key.
Please note that this has nothing to do with event duplication. A writer will never receive duplicate events, regardless if it is recovered from a snapshot or from scratch.