diff --git a/src/KArtSell.BuildingBlocks/Reliability/DapperOutboxMessageReader.cs b/src/KArtSell.BuildingBlocks/Reliability/DapperOutboxMessageReader.cs
index e4323610..0e83531d 100644
--- a/src/KArtSell.BuildingBlocks/Reliability/DapperOutboxMessageReader.cs
+++ b/src/KArtSell.BuildingBlocks/Reliability/DapperOutboxMessageReader.cs
@@ -60,6 +60,11 @@ public sealed class DapperOutboxMessageReader(IDbConnectionFactory connectionFac
cancellationToken: cancellationToken));
}
+ ///
+ /// Insert inbox record to mark message as published/delivery-ready.
+ /// Consumer parameter identifies the delivery mechanism (e.g., 'outbox-poller' = ready marker).
+ /// Actual downstream consumers poll inbox_message to retrieve and deliver to end recipients.
+ ///
public async Task InsertInboxAsync(
string consumer,
Guid messageId,
diff --git a/src/KArtSell.Host/Jobs/OutboxPollerJob.cs b/src/KArtSell.Host/Jobs/OutboxPollerJob.cs
index e98146ab..93459004 100644
--- a/src/KArtSell.Host/Jobs/OutboxPollerJob.cs
+++ b/src/KArtSell.Host/Jobs/OutboxPollerJob.cs
@@ -5,6 +5,16 @@ using Microsoft.Extensions.Logging;
namespace KArtSell.Host.Jobs;
+///
+/// Outbox Poller: Publishes unpublished messages to inbox and marks as delivered.
+///
+/// Design: Consumer='outbox-poller' in inbox_message is a delivery-ready marker.
+/// Actual event dispatch (SignalR, email, webhook, etc.) is delegated to future
+/// downstream consumer implementations that read inbox_message.
+///
+/// This separation allows Outbox pattern's durability guarantees without blocking
+/// on the specific delivery mechanism.
+///
public sealed class OutboxPollerJob(
DapperOutboxMessageReader reader,
IClock clock,