namespace ZB.MOM.WW.OtOpcUa.Commons.Messages.Mesh; /// /// The local actor names the two mesh comm actors are spawned under. Not a wire contract: /// nothing off-process addresses either actor by name. /// /// /// /// This used to be a wire contract and no longer is. While the cross-mesh transport /// was an Akka ClusterClient, central addressed a node by the literal path string /// /user/node-communication and the far side resolved it — so the two processes had to /// agree on a string neither could see the other spell. Both gRPC services now resolve /// their comm actor through ActorRegistry (CentralCommunicationActorKey / /// NodeCommunicationActorKey), which is type-checked, so the name below never crosses /// a process boundary. The full /user/... path constants that carried the old contract /// are deleted; what remains is a naming convention. /// /// /// Still declared once, here, rather than as literals at each spawn site — a shared constant /// costs nothing and keeps the name an operator sees in a log or an ActorSelection /// attached to one declaration. The registry key, not this string, is what a mis-rename /// would break, and that failure is a compile error rather than a silent drop. /// /// /// MeshCommActorPathTests boots a real host and Identify-probes /// /user/{name} on both nodes, which is what pins these values against the two /// registration sites. /// /// public static class MeshPaths { /// /// Actor name of the central-side comm actor — where an inbound deployment ack is handed /// over, after CentralCommandService has resolved it by registry key. /// public const string CentralCommunicationName = "central-communication"; /// /// Actor name of the node-side comm actor — where an inbound command is handed over, after /// NodeCommandService has resolved it by registry key. /// public const string NodeCommunicationName = "node-communication"; }