Example #1
0
        public static IActorRef StartUserAccountClusterProxy(ActorSystem actorSystem, string proxyRoleName)
        {
            var clusterProxy = ClusterFactory <UserAccountAggregateManager, UserAccountAggregate, UserAccountId>
                               .StartAggregateClusterProxy(actorSystem, proxyRoleName);

            return(clusterProxy);
        }
        public void Client_proxies_can_be_started()
        {
            RunOn(() =>
            {
                var proxy = ClusterFactory <TestAggregateManager, TestAggregate, TestAggregateId>
                            .StartAggregateClusterProxy(Sys, "worker", _numberOfShards);

                proxy.Tell(new Identify(5));

                ExpectMsg <ActorIdentity>(x => x.MessageId.Equals(5), TimeSpan.FromSeconds(10));
                Sys.Log.Info("proxy address: {0}", proxy.Path.ToString());
            }, _config.Client);

            EnterBarrier("client-proxies-started");
        }
        public static IAkkatectureBuilder AddAggregateManagerClusterProxy <TAggregateManager, TAggregate, TIdentity>(
            this IAkkatectureBuilder builder,
            string clusterRoleName,
            int numberOfShards = 12)
            where TAggregateManager : ReceiveActor, IAggregateManager <TAggregate, TIdentity>
            where TAggregate : IAggregateRoot <TIdentity>
            where TIdentity : IIdentity
        {
            var aggregateManager = ClusterFactory <TAggregateManager, TAggregate, TIdentity>
                                   .StartAggregateClusterProxy(
                builder.ActorSystem,
                clusterRoleName,
                numberOfShards);

            var actorRef = new ActorRefOfT <TAggregateManager>(aggregateManager);

            builder.Services.AddSingleton <IActorRef <TAggregateManager> >(actorRef);
            return(builder);
        }