public ClusterSnapshotActor(ClusterSnapshotInitializer initializer, IClusterApplication clusterApplication)
    {
        _broadcaster       = new ClusterApplicationBroadcaster(Logger);
        _communicationsHub = initializer.CommunicationsHub;
        _communicationsHub.Open(Stage, initializer.LocalNode, SelfAs <IInboundStreamInterest>(), initializer.Configuration);
        _localNode          = initializer.LocalNode;
        _clusterApplication = clusterApplication;
        _broadcaster.RegisterClusterApplication(clusterApplication);

        _clusterApplication.Start();
        _clusterApplication.InformResponder(_communicationsHub.ApplicationOutboundStream);

        initializer.Registry.RegisterRegistryInterest(SelfAs <IRegistryInterest>());

        _attributesAgent = AttributesAgentFactory.Instance(Stage, _localNode, _broadcaster,
                                                           _communicationsHub.OperationalOutboundStream !, initializer.Configuration);

        _localLiveNode = LocalLiveNodeFactory.Instance(Stage, _localNode, SelfAs <IClusterSnapshot>(),
                                                       initializer.Registry, _communicationsHub.OperationalOutboundStream !, initializer.Configuration);

        _localLiveNode.RegisterNodeSynchronizer(_attributesAgent);

        _communicationsHub.Start();
    }
 public ClusterApplicationBroadcasterTest(ITestOutputHelper output) : base(output)
 {
     _broadcaster = new ClusterApplicationBroadcaster(TestWorld.DefaultLogger);
     _broadcaster.RegisterClusterApplication(Application);
 }