using Akka.Configuration; namespace ZB.MOM.WW.Secrets.Replicator.AkkaDotNet; /// /// Akka configuration this package contributes. /// public static class AkkaSecretsReplication { /// /// HOCON binding the secret-replication wire protocol to /// . Merge it into the application's Akka /// configuration when creating the ActorSystem: /// /// Config config = AkkaSecretsReplication.SerializationConfig /// .WithFallback(myAppConfig); /// ActorSystem.Create("my-system", config); /// /// /// /// Optional — the protocol DTOs round-trip under Akka's default JSON serializer without it — but /// recommended, because it makes the serializer carrying secret ciphertext an explicit choice /// rather than an inherited default, and pins the manifest strings that a future protocol /// version would bump. /// public static Config SerializationConfig { get; } = ConfigurationFactory.ParseString($$""" akka.actor { serializers { zb-secrets-replication = "{{typeof(SecretReplicationSerializer).AssemblyQualifiedName}}" } serialization-bindings { "ZB.MOM.WW.Secrets.Replicator.AkkaDotNet.Protocol.SecretRowsMessage, ZB.MOM.WW.Secrets.Replicator.AkkaDotNet" = zb-secrets-replication "ZB.MOM.WW.Secrets.Replicator.AkkaDotNet.Protocol.SecretManifestAnnounce, ZB.MOM.WW.Secrets.Replicator.AkkaDotNet" = zb-secrets-replication "ZB.MOM.WW.Secrets.Replicator.AkkaDotNet.Protocol.SecretPullRequest, ZB.MOM.WW.Secrets.Replicator.AkkaDotNet" = zb-secrets-replication } serialization-identifiers { "{{typeof(SecretReplicationSerializer).AssemblyQualifiedName}}" = {{SecretReplicationSerializer.SerializerId}} } } """); }