// Copyright (c) 2025-2026 GeWuYou // SPDX-License-Identifier: Apache-2.0 using GFramework.Cqrs.Abstractions.Cqrs; namespace GFramework.Cqrs.Notification; /// /// 定义默认 CQRS runtime 的通知发布策略。 /// /// /// dispatcher 会先解析当前通知对应的处理器集合,再把本次发布上下文交给该抽象决定执行顺序。 /// 实现应把 视为当前发布调用的瞬时数据, /// 不要跨发布缓存处理器实例或假设它们已经脱离当前上下文。 /// public interface INotificationPublisher { /// /// 执行一次通知发布。 /// /// 通知类型。 /// 当前发布调用的处理器集合与执行入口,不能为空。 /// 取消令牌。 /// 表示通知发布完成的值任务。 /// ValueTask PublishAsync( NotificationPublishContext context, CancellationToken cancellationToken = default) where TNotification : INotification; }