Table of Contents

Class MessageExpiration<TPayload>

Namespace
PatternKit.Messaging.Reliability
Assembly
PatternKit.Core.dll

Stamps and evaluates message expiration metadata so stale messages can be rejected before processing.

public sealed class MessageExpiration<TPayload>

Type Parameters

TPayload
Inheritance
MessageExpiration<TPayload>
Inherited Members

Properties

HeaderName

The header used to store the expiration deadline.

public string HeaderName { get; }

Property Value

string

Methods

Create()

Creates a new message-expiration builder.

public static MessageExpiration<TPayload>.Builder Create()

Returns

MessageExpiration<TPayload>.Builder

Evaluate(Message<TPayload>, MessageContext?)

Evaluates whether a message is expired at the current clock time.

public MessageExpirationResult<TPayload> Evaluate(Message<TPayload> message, MessageContext? context = null)

Parameters

message Message<TPayload>
context MessageContext

Returns

MessageExpirationResult<TPayload>

Read(Message<TPayload>)

Reads the expiration deadline from a message when present and parseable.

public DateTimeOffset? Read(Message<TPayload> message)

Parameters

message Message<TPayload>

Returns

DateTimeOffset?

Stamp(Message<TPayload>, TimeSpan?)

Returns a new message with an expiration deadline based on the configured or supplied TTL.

public Message<TPayload> Stamp(Message<TPayload> message, TimeSpan? ttl = null)

Parameters

message Message<TPayload>
ttl TimeSpan?

Returns

Message<TPayload>

WithDeadline(Message<TPayload>, DateTimeOffset)

Returns a new message with an explicit expiration deadline.

public Message<TPayload> WithDeadline(Message<TPayload> message, DateTimeOffset expiresAt)

Parameters

message Message<TPayload>
expiresAt DateTimeOffset

Returns

Message<TPayload>