Aaron Stannard
Aaron Stannard
> 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...
I should point out: these issues and the bugs I'm fixing in #3744 are one of the reasons why Akka.Cluster.Sharding has been stuck in beta for so long. Coordinator fail-over...
Example of stuff that should be deleted: https://github.com/akkadotnet/akka.net/blob/2ad84eefe474962aa0afe023caa6a4d11714460b/src/contrib/persistence/Akka.Persistence.Sql.Common/Journal/QueryExecutor.cs#L690-L706 Allowing the plugin to OVERRIDE the `akka.actor.serialization-binding`s with some kind of external type hint is crazy - there's no way for the...
On top of that, having to directly expose both the manifest data AND the serializer ID directly into the schema of the Akka.Persistence plugins has been demonstrably brittle over the...
It's not just that we have a new method inside the 'Serialization' class - it's that we actively bypass the built-in persistence serializers so we never use the MessageSerializer or...
Another good example here: https://github.com/AkkaNetContrib/Akka.Persistence.MongoDB/pull/42 and here https://github.com/AkkaNetContrib/Akka.Persistence.MongoDB/issues/26 - Akka.Persistence.MongoDb couldn't support the built-in Cluster.Sharding serializers by default, since it was doing its own thing with serialization rather than using...
To be clear though, @Horusiath is absolutely right about this: > We shouldn't be too eager to ditch existing mechanisms. The existing mechanisms are, by any objective standard, bad. But...
Related: https://github.com/akkadotnet/akka.net/pull/2933
> No double serialization as a feature-bug It's not a bug - you have to have a standard payload definition to determine what the user-defined message types are. The problem...
We already have it: https://github.com/akkadotnet/akka.net/blob/36a7267393c86c14380d7c17205c866e58f3123c/src/protobuf/Persistence.proto#L9-L17 It's just not being enforced by the underlying Akka.Persistence implementation. In Akka.Remote we do something similar: https://github.com/akkadotnet/akka.net/blob/36a7267393c86c14380d7c17205c866e58f3123c/src/protobuf/WireFormats.proto#L21-L26 https://github.com/akkadotnet/akka.net/blob/36a7267393c86c14380d7c17205c866e58f3123c/src/protobuf/ContainerFormats.proto#L33-L50