sageserpent-open / plutonium

CQRS providing bitemporal object modelling for Java POJOs and Scala too.
MIT License
5 stars 0 forks source link

Persistence - Versioning #46

Open sageserpent-open opened 6 years ago

sageserpent-open commented 6 years ago

If client code domain classes change, then there should be a migration path for stored data.

sageserpent-open commented 6 years ago

It is open for debate as to whether the event patches should be recalculated anyway , rather than just cutting over snapshots to the new domain implementations on deserialization. How would Plutonium know when to so this?

This also begs a question - suppose the client domain changes cause invariants / preconditions to be broken when recalculations are made? It doesn't seem right to say that Plutonium simply breaks or refuses to perform a migration. Can we allow the notion of invalid item state to accommodate this?

If we do bring in invalid item state, can we use this to allow eventual consistency for a distributed implementation?