Files
nexus/backend/Services/IDomainEventStreamService.cs
T
AzuTear f5552218bc
CI - Build & Test / Backend (.NET) (push) Successful in 42s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m46s
CI - Build & Test / Security Check (push) Successful in 3s
CI - Build & Test / Deploy Nexus (push) Successful in 56s
feat: ship agent-first mission control v0.2.57
2026-07-31 22:39:47 +02:00

32 lines
849 B
C#

using System.Threading.Channels;
using Nexus.Api.Models;
namespace Nexus.Api.Services;
public interface IDomainEventStreamService
{
long CurrentSequence { get; }
DomainEventSubscription Subscribe(IReadOnlySet<string> channels);
}
public sealed class DomainEventSubscription(
ChannelReader<DomainEventDto> reader,
long startingSequence,
Func<ValueTask> disposeAsync) : IAsyncDisposable
{
public ChannelReader<DomainEventDto> Reader { get; } = reader;
public long StartingSequence { get; } = startingSequence;
public ValueTask DisposeAsync() => disposeAsync();
}
public sealed class DomainEventSubscriberOverflowException :
InvalidOperationException
{
public DomainEventSubscriberOverflowException()
: base("The domain-event subscriber queue overflowed and requires a REST resync.")
{
}
}