Migration - updating an Event type

Let’s say that my Event is represented in code (and in EventStore as well) as a type “MyEvent”. Let’s assume it contains a single field called “A” (like the following F# record):

type MyEvent =


What serialization format are you using? Why not just use weak schema?

OK - that makes sense.
How about a more complicated scenario, when an upgrade to the newer version is not that simple e.g. it contains some additional fields, which don’t have a default value; e.g. they require downloading some data from the web, which takes much time and cannot be done on a fly.

I think migrating the whole stream is the solution I need, but the thing is it affects transaction times. Is there a way of performing a such migration without changing the TxTime ?

No the transaction time is when the transaction is written. If you
want to do such things add your own "effective transaction time" to



Sounds good - thanks.
BTW: Are there any plans to implement stream migration in EventStore ?

I wouldn't do it "in" event store. Its a few lines of code on top of
client api (or can be done in a custom projection)