Skip to main content
Table of Contents

Class OutboxEntry

Namespace
Stratara.Abstractions.Outbox
Assembly
Stratara.Abstractions.dll

Durable outbox row — persists a serialised payload (command envelope or event bundle) for later delivery by the outbox worker. Written by dispatchers when the direct bus publish fails.

[ExcludeFromCodeCoverage]
public sealed class OutboxEntry : IEntity, IBucket, IHasRowVersion
Inheritance
OutboxEntry
Implements
Inherited Members
Extension Methods

Properties

AggregateId

The aggregate the stored command names, recorded with it so resuming does not read the payload; null for a command that names none and for a bundle.

public Guid? AggregateId { get; set; }

Property Value

Guid?

AttemptCount

How many times the entry has been handed over for execution since it was stored or returned — for a recorded command the hand-over of its dispatch is counted when it is stored — less the attempts given back for a concurrency conflict or a stop.

public int AttemptCount { get; set; }

Property Value

int

BucketId

The bucket index in [0, BucketCount).

public required int BucketId { get; set; }

Property Value

int

ConflictCount

How many of the entry's attempts since it was stored or returned ended in a concurrency conflict.

public int ConflictCount { get; set; }

Property Value

int

DataJson

The serialised payload as JSON.

public required string DataJson { get; set; }

Property Value

string

DataTypeName

Fully-qualified, version-independent type name of the payload — used by the worker to deserialise.

public required string DataTypeName { get; set; }

Property Value

string

Heavy

Whether the stored command declared itself long-running.

public bool Heavy { get; set; }

Property Value

bool

Id

The entity's primary-key identifier.

public Guid Id { get; set; }

Property Value

Guid

KeptAt

When the entry was kept for an operator after its attempts ran out; null while it is still resumed.

public DateTimeOffset? KeptAt { get; set; }

Property Value

DateTimeOffset?

LastFailure

The failure of the last attempt, recorded when the entry is kept.

public string? LastFailure { get; set; }

Property Value

string

LastHandedOverAt

When the entry was last handed over for execution; null until it first is.

public DateTimeOffset? LastHandedOverAt { get; set; }

Property Value

DateTimeOffset?

RowVersion

Current row version as read from xmin. Set by EF Core on save.

public uint RowVersion { get; set; }

Property Value

uint

Timestamp

When the entry was queued; recorded commands due together are resumed in the order of this time.

public DateTimeOffset Timestamp { get; set; }

Property Value

DateTimeOffset