19 lines
849 B
C#
19 lines
849 B
C#
namespace Svrnty.CQRS.Notifications.Abstractions;
|
|
|
|
/// <summary>
|
|
/// Publishes notifications to all subscribed gRPC clients.
|
|
/// </summary>
|
|
public interface INotificationPublisher
|
|
{
|
|
/// <summary>
|
|
/// Publish a notification to all subscribers matching the subscription key.
|
|
/// The subscription key is extracted from the notification based on the
|
|
/// <see cref="StreamingNotificationAttribute.SubscriptionKey"/> property.
|
|
/// </summary>
|
|
/// <typeparam name="TNotification">The notification type marked with <see cref="StreamingNotificationAttribute"/>.</typeparam>
|
|
/// <param name="notification">The notification to publish.</param>
|
|
/// <param name="ct">Cancellation token.</param>
|
|
Task PublishAsync<TNotification>(TNotification notification, CancellationToken ct = default)
|
|
where TNotification : class;
|
|
}
|