MessageRoute(IEventBus bus, ProcessId processId, DateTime createdOn)
            : base(bus)
        {
            var id = new MessageRouteId();
            hierarchy = new MessageRouteHierarchy(this, id);
            this.processId = processId;

            PublishEvent(new MessageRouteStarted
            {
                Id = id,
                MachineName = processId.MachineName,
                Thread = processId.Thread,
                CreatedOn = createdOn
            });
        }
        MessageRoute(IEventBus bus, ProcessId processId, DateTime createdOn)
            : base(bus)
        {
            var id = new MessageRouteId();

            hierarchy      = new MessageRouteHierarchy(this, id);
            this.processId = processId;

            PublishEvent(new MessageRouteStarted
            {
                Id          = id,
                MachineName = processId.MachineName,
                Thread      = processId.Thread,
                CreatedOn   = createdOn
            });
        }