/// <summary>
        /// <para>Wires <see cref="DispatchCommandBatch"/> implementation of <see cref="ISingleThreadMessageDispatcher"/>
        /// into this partition. It allows dispatching multiple commands (in a single envelope) to one consumer each.</para>
        /// <para> Additional information is available in project docs.</para>
        /// </summary>
        public void DispatchAsCommandBatch(Action <MessageDirectoryFilter> optionalFilter = null)
        {
            var action = optionalFilter ?? (x => { });

            _dispatcher = ctx => DirectoryDispatchFactory.CommandBatch(ctx, action);
        }
        /// <summary>
        /// <para>Wires <see cref="DispatchOneEvent"/> implementation of <see cref="ISingleThreadMessageDispatcher"/>
        /// into this partition. It allows dispatching a single event to zero or more consumers.</para>
        /// <para> Additional information is available in project docs.</para>
        /// </summary>
        public void DispatchAsEvents(Action <MessageDirectoryFilter> optionalFilter = null)
        {
            var action = optionalFilter ?? (x => { });

            _dispatcher = ctx => DirectoryDispatchFactory.OneEvent(ctx, action);
        }