using System.Threading; using Svrnty.CQRS.Events.Abstractions.Delivery; using Svrnty.CQRS.Events.Abstractions.EventStore; using System.Threading.Tasks; namespace Svrnty.CQRS.Events.Abstractions.Delivery; /// /// Service responsible for delivering events to subscribers. /// Handles filtering, delivery mode logic, and terminal event detection. /// public interface IEventDeliveryService { /// /// Deliver an event to all interested subscribers. /// /// The event to deliver. /// The sequence number assigned to this event. /// Cancellation token. Task DeliverEventAsync(ICorrelatedEvent @event, long sequence, CancellationToken cancellationToken = default); }