We have an upcasting infrastructure in place that allows us to upcast events to other events. As part of our zero-downtime blue/green deployment we go through each event in our blue NES-DB and copy it to the green NES-DB + adjust it to a newer version if necessary.
Due to the fact that the Commits table can hold multiple events per entry we can even upcast a single event to multiple events - within the same stream.
It would be nice to be able to do the same for multiple streams.
First question: do you already have such a mechanism in place that we could somehow use to do just that?
If no, let's discuss it as a feature request. My idea would be that a single CheckpointNumber could have multiple entries - for different BucketId/StreamId (or at least different StreamId, would be enough for our use case). This would allow us to upcast an event to multiple events for different streams and add multiple entries to the target database. Still, those all those events have the original CheckpointNumber which is important for many downstream clients of the event store (mostly to record "have I handled this event already or haven't I"?).
Would love to hear your comments :-)
Best regards,
D.R.
We have an upcasting infrastructure in place that allows us to upcast events to other events. As part of our zero-downtime blue/green deployment we go through each event in our blue NES-DB and copy it to the green NES-DB + adjust it to a newer version if necessary.
Due to the fact that the Commits table can hold multiple events per entry we can even upcast a single event to multiple events - within the same stream.
It would be nice to be able to do the same for multiple streams.
First question: do you already have such a mechanism in place that we could somehow use to do just that?
If no, let's discuss it as a feature request. My idea would be that a single CheckpointNumber could have multiple entries - for different BucketId/StreamId (or at least different StreamId, would be enough for our use case). This would allow us to upcast an event to multiple events for different streams and add multiple entries to the target database. Still, those all those events have the original CheckpointNumber which is important for many downstream clients of the event store (mostly to record "have I handled this event already or haven't I"?).
Would love to hear your comments :-)
Best regards,
D.R.