request/src/request.dispatcher/INotificationPublisher.cs
Louis Seubert ed8ac913b6
Some checks failed
default / dotnet-default-workflow (pull_request) Failing after 1m46s
feat: add pub/sub support to dispatcher
Notifications are broadcast to zero or more handlers with configurable
publishing strategies (sequential or parallel) and pipeline behavior
support.
2026-07-01 22:00:05 +02:00

20 lines
1,020 B
C#

// Copyright (c) The Geekeey Authors
// SPDX-License-Identifier: EUPL-1.2
namespace Geekeey.Request.Dispatcher;
/// <summary>
/// Defines a strategy for publishing notifications to registered handlers.
/// </summary>
public interface INotificationPublisher
{
/// <summary>
/// Publishes the specified notification to the given collection of handlers.
/// </summary>
/// <typeparam name="TNotification">The type of notification being published. Must implement <see cref="INotification"/>.</typeparam>
/// <param name="handlers">The list of handlers to invoke.</param>
/// <param name="notification">The notification instance to publish.</param>
/// <param name="cancellationToken">A token to monitor for cancellation requests.</param>
/// <returns>A task representing the asynchronous publish operation.</returns>
Task PublishAsync<TNotification>(IEnumerable<INotificationHandler<TNotification>> handlers, TNotification notification, CancellationToken cancellationToken) where TNotification : INotification;
}