feat: Outbox management API — dead-letter inspection, replay, and statistics (IOutboxManagement)#158
Draft
feat: Outbox management API — dead-letter inspection, replay, and statistics (IOutboxManagement)#158
IOutboxManagement)#158Conversation
10 tasks
…nd statistics Agent-Logs-Url: https://github.com/dailydevops/pulse/sessions/05840039-eae6-44fa-8f53-050ceaebfa7d Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add IOutboxManagement API for dead-letter inspection and replay
feat: Outbox management API — dead-letter inspection, replay, and statistics (Mar 28, 2026
IOutboxManagement)
samtrion
reviewed
Mar 28, 2026
| /// <para><strong>Thread Safety:</strong></para> | ||
| /// Implementations SHOULD be thread-safe for concurrent administrative access. | ||
| /// </remarks> | ||
| public interface IOutboxManagement |
Contributor
There was a problem hiding this comment.
Add a method which returns the number of dead letter messages. @copilot
Contributor
Author
There was a problem hiding this comment.
GetDeadLetterCountAsync() is already included in the interface (line 47) and is implemented in both EntityFrameworkOutboxManagement and SqlServerOutboxManagement — no changes needed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Operators had no programmatic way to inspect dead-letter messages, review failure reasons, or replay them — direct database access was the only option.
New contracts (
NetEvolve.Pulse.Extensibility)IOutboxManagement— management interface:GetDeadLetterMessagesAsync(pageSize, page)— paginated dead-letter listing, ordered byUpdatedAt DESCGetDeadLetterMessageAsync(messageId)— single message lookupGetDeadLetterCountAsync()— dead-letter countReplayMessageAsync(messageId)— reset one dead-letter toPending, clearsRetryCount/Error; returnsboolReplayAllDeadLetterAsync()— reset all dead-letters toPending; returns affected countGetStatisticsAsync()— returnsOutboxStatistics(counts perOutboxMessageStatus)OutboxStatistics— read-only snapshot withPending,Processing,Completed,Failed,DeadLetter, computedTotalEF Core (
NetEvolve.Pulse.EntityFramework)EntityFrameworkOutboxManagement<TContext>— LINQ/ExecuteUpdateAsync-based implementationIOutboxManagement(Scoped) viaAddEntityFrameworkOutbox<TContext>()SQL Server (
NetEvolve.Pulse.SqlServer)SqlServerOutboxManagement— ADO.NET implementation backed by six new stored procedures added toOutboxMessage.sql:usp_GetDeadLetterOutboxMessages,usp_GetDeadLetterOutboxMessage,usp_GetDeadLetterOutboxMessageCount,usp_ReplayOutboxMessage,usp_ReplayAllDeadLetterOutboxMessages,usp_GetOutboxStatisticsIOutboxManagement(Scoped) in bothAddSqlServerOutboxoverloadsUsage
📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.