LineTen.Messaging.Abstractions 2.0.112

dotnet add package LineTen.Messaging.Abstractions --version 2.0.112
                    
NuGet\Install-Package LineTen.Messaging.Abstractions -Version 2.0.112
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LineTen.Messaging.Abstractions" Version="2.0.112" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LineTen.Messaging.Abstractions" Version="2.0.112" />
                    
Directory.Packages.props
<PackageReference Include="LineTen.Messaging.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LineTen.Messaging.Abstractions --version 2.0.112
                    
#r "nuget: LineTen.Messaging.Abstractions, 2.0.112"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LineTen.Messaging.Abstractions@2.0.112
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LineTen.Messaging.Abstractions&version=2.0.112
                    
Install as a Cake Addin
#tool nuget:?package=LineTen.Messaging.Abstractions&version=2.0.112
                    
Install as a Cake Tool

LineTen.Messaging.Abstractions

Contracts for LineTen messaging v3. Zero dependencies. Implementations live in LineTen.Messaging.Bus.AzureServiceBus and LineTen.Messaging.Bus.InMemory; registration lives in LineTen.Messaging.DependencyInjection.

Contents

  • IMessageBus — marker interface; declare one type per bus.
  • IPublisher<TBus> — PublishAsync<T>(message, ct) and PublishAsync<T>(message, PublishOptions, ct).
  • PublishOptions — optional CorrelationId and application properties for a publish.
  • IPerformer<T> — PerformAsync(T message, IMessageContext context, CancellationToken).
  • IDeadLetterPerformer<T> — DeadLetterPerformAsync(T message, DeadLetterContext context, CancellationToken).
  • IMessageContext — per-delivery metadata handed to a performer.
  • DeadLetterContext — metadata for a dead-lettered message.
  • FilterBuilder / FilterExpression — subscription filter DSL compiled by each transport.
  • SubscriptionNamer — deterministic subscription naming (Compute(serviceName, topic, messageTypeFqn, filterCanonicalForm)).
  • Transport seam (IBrokerTransport, IBrokerPublisher, IBrokerSubscription, IBrokerAdministration) for transport implementers.
  • Retry contract (IRetryPolicy, TransientExceptionAttribute, PermanentExceptionAttribute), health contract, telemetry constants.

IMessageContext

Member Type Meaning
MessageId Guid Identifier of this message. Minted per message at publish time. Use for idempotency.
CorrelationId Guid Broker correlation id of this message. Guid.Empty when the message carried none. Use to link a reply to its request.
DeliveryCount int 1-based delivery attempt.
EnqueuedAtUtc DateTime UTC enqueue time.
Properties IReadOnlyDictionary<string, string> Application properties set by the publisher.

MessageId and CorrelationId are different values. A reply has its own MessageId; it carries the request's CorrelationId.

DeadLetterContext

Positional record: Reason, ErrorDescription, Source, DeliveryCount, OriginalEnqueuedAtUtc, DeadLetteredAtUtc, Properties, CorrelationId. CorrelationId is the original message's correlation id, Guid.Empty when it carried none.

Correlation

Resolved at publish time, in order: explicit PublishOptions.CorrelationId; the correlation id of the message being performed, when publishing inside a performer; the ambient W3C trace id; Guid.Empty.

Request/response over a shared response topic:

  1. Requester generates requestId, records it in a store shared across its instances, publishes with new PublishOptions(requestId).
  2. The responding performer publishes its reply without setting a correlation id. The reply inherits requestId.
  3. The requester's reply performer reads context.CorrelationId and looks it up in the shared store. Competing consumers mean any instance may receive the reply; do not use an in-memory pending map.

Version notes

2.0.112

  • Added IMessageContext.CorrelationId.
  • Added DeadLetterContext.CorrelationId as the eighth positional parameter. Code that constructs DeadLetterContext directly must supply it. Consumers that only implement IPerformer<T> or IDeadLetterPerformer<T> are unaffected.
  • Both transports populate the value from the received message. Dead-lettering preserves it.

Documentation

docs/adr/0009-publish-properties-and-correlation.md and docs/adr/0011-consume-side-correlation-exposure.md in the lineten/core-csharp-nuget repository.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on LineTen.Messaging.Abstractions:

Package Downloads
LineTen.Messaging.DependencyInjection

LineTen messaging v3 composition root. Provides AddLineTenMessaging(serviceName), AddBus<TBus>, AddPerformer<TPerformer, TMessage> with fluent options, and a startup-time validator (IHostedService) that fails fast on misconfigured registrations. Transport selection (UseAzureServiceBus, UseInMemory) lives in the respective transport packages, which add their own extensions on IBusOptionsBuilder<TBus>. See ADR-0007 for the packaging rationale.

LineTen.Messaging.Bus.AzureServiceBus

LineTen messaging v3 Azure Service Bus transport. The only package that references Azure.Messaging.ServiceBus. Implements IBrokerTransport with idempotent subscription reconciliation, lock-renewal-aware processor, and deterministic FilterExpression to SqlRuleFilter compilation.

LineTen.Messaging.Bus.InMemory

LineTen messaging v3 in-memory transport. Backed by System.Threading.Channels. For use in unit tests and local development only. Hard-blocked at construction time when ASPNETCORE_ENVIRONMENT is a production-tier value.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.112 162 9/7/2026
2.0.111 170 7/13/2026
2.0.110 986 6/23/2026
2.0.109 202 6/19/2026
2.0.108 172 6/17/2026
2.0.107 197 6/12/2026
2.0.106 170 6/1/2026
2.0.105 343 6/1/2026
2.0.104 162 6/1/2026
2.0.103 165 5/28/2026
2.0.102 199 5/27/2026
2.0.101 160 5/21/2026
2.0.100 148 5/20/2026
2.0.99 143 5/18/2026
2.0.98 127 5/18/2026
2.0.97 120 5/14/2026
2.0.96 120 5/14/2026
2.0.95 118 5/14/2026
2.0.94 109 5/13/2026
2.0.93 115 5/12/2026