public ActorManager(IActorFactory actorFactory, IProvider persistenceProvider, IOptions <ActorSettings> actorSettings, ITracer tracer, ILoggerFactory loggerFactory)
        {
            _actorFactory = actorFactory;
            var settings = actorSettings.Value;
            var logger   = loggerFactory.CreateLogger <ActorManager>();

            // Configure OpenTracing
            Context = new RootContext(new MessageHeader(), OpenTracingExtensions.OpenTracingSenderMiddleware())
                      .WithOpenTracing();

            _actorFactory.RegisterActor(new RequestActor(this, persistenceProvider, TimeSpan.FromMilliseconds(settings.ChildActorTimeoutInMilliseconds), loggerFactory, tracer), ActorNames.RequestActor);

            EventStream.Instance.Subscribe <DeadLetterEvent>(dl =>
            {
                logger.LogWarning($"DeadLetter from {dl.Sender} to {dl.Pid} : {dl.Message?.GetType().Name} = '{dl.Message?.ToString()}'");
            });
        }
 public void RegisterChildActor <T>(T actor, string id, IContext parent) where T : IActor
 {
     _actorFactory.RegisterActor(actor, id, null, parent);
 }