Skip to main content
Table of Contents

Class ProjectionReplayOptions

Namespace
Stratara.Outbox.RabbitMQ.Projections
Assembly
Stratara.Outbox.RabbitMQ.dll

Options controlling how long a projection replay's active marking and progress counters survive without renewal. AddProjectionReplayState() — which the outbox dispatcher and the worker composites call — reads them from the configuration section SectionName ("ProjectionReplay") of the host's configuration; a service collection that holds no configuration gets the defaults. A value set with services.Configure<ProjectionReplayOptions>(...) after that call takes precedence over the section.

[ExcludeFromCodeCoverage]
public sealed class ProjectionReplayOptions
Inheritance
ProjectionReplayOptions
Inherited Members
Extension Methods

Fields

SectionName

Configuration section name ("ProjectionReplay") used to bind these options.

public const string SectionName = "ProjectionReplay"

Field Value

string

Properties

LeaseSeconds

Seconds the replay's active marking and its progress counters survive without renewal. The replay renews them every time it reports progress, and every second while it preserves, empties and counts before the first report, so this value must outlast the slowest batch. A value shorter than that lets the marking lapse while the replay is still running, which resumes suppressed publication against half-rebuilt read models; erring long only delays the clearing of a marking whose replay already died. Must be greater than zero; a value of zero or less is refused when the host starts. Defaults to 300.

public int LeaseSeconds { get; set; }

Property Value

int

RefreshSeconds

Seconds between two refreshes of what this host knows of the replay marking. The marking is answered from the host's memory, never by a round trip to the coordination store; a change made elsewhere — a replay that began or ended in another host, or a marking that lapsed — is announced over the coordination store's channel and seen within its latency, and this period bounds how long a host stays wrong where that announcement is lost or has not reached it yet. A longer value costs staleness in that case; a shorter one costs one read per host per period. Must be greater than zero and below LeaseSeconds, since a refresh slower than the lease could miss a whole replay; a value outside that is refused when the host starts. Defaults to 5.

public int RefreshSeconds { get; set; }

Property Value

int