Event versioning/transformation


in this talk, https://www.youtube.com/watch?v=FKFu78ZEIi8 (14:40), Greg Young is talking about event versioning/transformation.

What is the best way doing this? What I would do:

  1. create a new EventStore
  2. create an application/function using the EventStoreClient.SubscribeToAllAsync to subscribe to all events
  3. transform affected events
  4. call EventStoreClient.AppendToStreamAsync to store the transformed events to the new EventStore

Is that the way to go or am I missing something?

Is there a way testing this locally using docker? I didn’t manage to change the ports (1113, 2113).


Hi @Dani
there are a number of strategies there , and it all boils down to the kind of transormation you need to do .
one of the parameters is the current write load on the source database.

here’s an article on the topic

Greg’s book on the topic

We also have a tool ( primarly meant for moving data from on-premise to cloud)

Hi @yves.lorphelin

Thanks for your answer.

For now, I’m mostly interested in copy-replace. Therefore my question, do the 4 points listed above make sense?

I’ll have a look at the replicator tool, thanks.


do the 4 points listed above make sense?

Yes they do !
the Replicator will take care of of (2) & (4) for you :slight_smile:
(3) : you need to provide some function and they are a few options.
As for everything just make sure it fast enough for you .

Actually, Replicator does 2, 3, and 4 https://replicator.eventstore.org/docs/features/transforms/