namespace GFramework.Cqrs.Abstractions.Cqrs; /// /// 定义架构上下文使用的 CQRS runtime seam。 /// 该抽象把请求分发、通知发布与流式处理从具体实现中解耦, /// 使 CQRS runtime 契约可独立归属到 GFramework.Cqrs.Abstractions。 /// public interface ICqrsRuntime { /// /// 发送请求并返回响应。 /// /// 响应类型。 /// 当前 CQRS 分发上下文。 /// 要分发的请求。 /// 取消令牌。 /// 请求响应。 ValueTask SendAsync( ICqrsContext context, IRequest request, CancellationToken cancellationToken = default); /// /// 发布通知到所有已注册处理器。 /// /// 通知类型。 /// 当前 CQRS 分发上下文。 /// 要发布的通知。 /// 取消令牌。 /// 表示通知分发完成的值任务。 ValueTask PublishAsync( ICqrsContext context, TNotification notification, CancellationToken cancellationToken = default) where TNotification : INotification; /// /// 创建流式请求的异步响应序列。 /// /// 流元素类型。 /// 当前 CQRS 分发上下文。 /// 流式请求。 /// 取消令牌。 /// 按需生成的异步响应序列。 IAsyncEnumerable CreateStream( ICqrsContext context, IStreamRequest request, CancellationToken cancellationToken = default); }