Table of Contents

Class InboxMessage

Namespace
Trellis.EntityFrameworkCore
Assembly
Trellis.EntityFrameworkCore.Inbox.dll

A persisted record that a (ConsumerId, MessageId) message has been processed. Its existence is the dedup guarantee: a redelivery of the same message finds the row and is skipped, so a handler's side effects run effectively once.

public sealed class InboxMessage
Inheritance
InboxMessage
Inherited Members
Extension Methods

Remarks

This is transient infrastructure, not a domain aggregate. Rows may be pruned once they are older than the transport's maximum redelivery window — delete sooner and a late redelivery would be reprocessed.

Properties

CausationId

Optional lineage: the id of the message that directly caused this one.

public Guid? CausationId { get; }

Property Value

Guid?

ConsumerId

The stable subscriber identifier; part of the dedup key.

public string ConsumerId { get; }

Property Value

string

CorrelationId

Optional lineage: the workflow / conversation id.

public string? CorrelationId { get; }

Property Value

string

EventType

The assembly-qualified name of the integration event type, recorded for audit.

public string EventType { get; }

Property Value

string

MessageId

The message's stable id (the producer's outbox id); part of the dedup key.

public Guid MessageId { get; }

Property Value

Guid

MessageSource

The producing service / bounded context, if the envelope supplied one.

public string? MessageSource { get; }

Property Value

string

OccurredAt

When the business fact occurred (copied from the event's OccurredAt).

public DateTimeOffset OccurredAt { get; }

Property Value

DateTimeOffset

ProcessedAt

When this consumer processed the message.

public DateTimeOffset ProcessedAt { get; }

Property Value

DateTimeOffset