Table of Contents

Interface IAsiBackboneGovernanceOutboxStore

Namespace
AsiBackbone.Core.Outbox
Assembly
AsiBackbone.Core.dll

Defines a provider-neutral durable outbox store for governance emission envelopes.

public interface IAsiBackboneGovernanceOutboxStore

Remarks

The provider-neutral find methods return delivery candidates. They do not imply cross-process row claiming, leasing, skip-locked selection, or exactly-once provider delivery. Hosts that run multiple drain workers against the same durable store must add host-owned claiming, partitioning, or provider-side idempotency.

Methods

EnqueueAsync(GovernanceEmissionEnvelope, CancellationToken)

Enqueues a provider-neutral governance emission envelope before optional downstream provider delivery is attempted.

ValueTask<GovernanceOutboxEntry> EnqueueAsync(GovernanceEmissionEnvelope envelope, CancellationToken cancellationToken = default)

Parameters

envelope GovernanceEmissionEnvelope
cancellationToken CancellationToken

Returns

ValueTask<GovernanceOutboxEntry>

FindByOutboxEntryIdAsync(string, CancellationToken)

Finds an outbox entry by its stable identifier.

ValueTask<GovernanceOutboxEntry?> FindByOutboxEntryIdAsync(string outboxEntryId, CancellationToken cancellationToken = default)

Parameters

outboxEntryId string
cancellationToken CancellationToken

Returns

ValueTask<GovernanceOutboxEntry>

FindPendingAsync(int, CancellationToken)

Finds pending outbox entries ordered for delivery.

ValueTask<IReadOnlyList<GovernanceOutboxEntry>> FindPendingAsync(int maxCount = 100, CancellationToken cancellationToken = default)

Parameters

maxCount int
cancellationToken CancellationToken

Returns

ValueTask<IReadOnlyList<GovernanceOutboxEntry>>

Remarks

Returned entries are candidates, not claimed work items. A multi-worker host should use a storage adapter or deployment pattern that claims or partitions work before provider emission.

FindRetryReadyAsync(DateTimeOffset, int, CancellationToken)

Finds retry-ready outbox entries ordered for delivery.

ValueTask<IReadOnlyList<GovernanceOutboxEntry>> FindRetryReadyAsync(DateTimeOffset utcNow, int maxCount = 100, CancellationToken cancellationToken = default)

Parameters

utcNow DateTimeOffset
maxCount int
cancellationToken CancellationToken

Returns

ValueTask<IReadOnlyList<GovernanceOutboxEntry>>

Remarks

Returned entries are candidates, not claimed work items. A multi-worker host should use a storage adapter or deployment pattern that claims or partitions work before provider emission.

MarkDeadLetteredAsync(string, GovernanceEmissionError, string?, CancellationToken)

Marks an outbox entry as dead-lettered.

ValueTask<GovernanceOutboxEntry> MarkDeadLetteredAsync(string outboxEntryId, GovernanceEmissionError governanceEmissionError, string? deadLetterReason = null, CancellationToken cancellationToken = default)

Parameters

outboxEntryId string
governanceEmissionError GovernanceEmissionError
deadLetterReason string
cancellationToken CancellationToken

Returns

ValueTask<GovernanceOutboxEntry>

MarkDeliveredAsync(string, GovernanceEmissionResult, CancellationToken)

Marks an outbox entry as delivered using a provider-neutral emission result.

ValueTask<GovernanceOutboxEntry> MarkDeliveredAsync(string outboxEntryId, GovernanceEmissionResult result, CancellationToken cancellationToken = default)

Parameters

outboxEntryId string
result GovernanceEmissionResult
cancellationToken CancellationToken

Returns

ValueTask<GovernanceOutboxEntry>

MarkFailedAsync(string, GovernanceEmissionError, DateTimeOffset?, CancellationToken)

Marks an outbox entry as failed or retryable failed using provider-neutral error information.

ValueTask<GovernanceOutboxEntry> MarkFailedAsync(string outboxEntryId, GovernanceEmissionError governanceEmissionError, DateTimeOffset? nextRetryUtc = null, CancellationToken cancellationToken = default)

Parameters

outboxEntryId string
governanceEmissionError GovernanceEmissionError
nextRetryUtc DateTimeOffset?
cancellationToken CancellationToken

Returns

ValueTask<GovernanceOutboxEntry>

SaveAsync(GovernanceOutboxEntry, CancellationToken)

Saves an updated outbox entry state.

ValueTask<GovernanceOutboxEntry> SaveAsync(GovernanceOutboxEntry entry, CancellationToken cancellationToken = default)

Parameters

entry GovernanceOutboxEntry
cancellationToken CancellationToken

Returns

ValueTask<GovernanceOutboxEntry>