akka.net icon indicating copy to clipboard operation
akka.net copied to clipboard

Need to make PersistenceMessageSerializer version tolerant

Open Aaronontheweb opened this issue 4 years ago • 2 comments

Version: v1.4.19

Right now our PersistenceMessageSerializer isn't using type manifests for its message names:

https://github.com/akkadotnet/akka.net/blob/dev/src/core/Akka.Persistence/Serialization/PersistenceMessageSerializer.cs

We need to perform the same type of transformation we just applied to the https://github.com/akkadotnet/akka.net/pull/4989 in order to preserve backwards compatibility with previously serialized message types while also decoupling any future changes to the internal type names from the manifests we use inside the persistence payloads.

Before we release v1.4.20 we will need to make sure this change is compatibility-tested against Akka.Persistence.SqlServer and its nightly builds.

Aaronontheweb avatar May 10 '21 13:05 Aaronontheweb

This issue is nastier than it looks, problem with the Akka.Persistence.Fsm.PersistentFSM.PersistentFSMSnapshot class being a generic class, making it really hard to hard code a manifest string and create a hard coded backward compatibility manifest for this class.

Arkatufus avatar May 10 '21 16:05 Arkatufus

This issue is nastier than it looks, problem with the Akka.Persistence.Fsm.PersistentFSM.PersistentFSMSnapshot class being a generic class, making it really hard to hard code a manifest string and create a hard coded backward compatibility manifest for this class.

That is nasty....

Aaronontheweb avatar May 11 '21 14:05 Aaronontheweb