Goldpath.Messaging 0.1.0-preview.8

This is a prerelease version of Goldpath.Messaging.
dotnet add package Goldpath.Messaging --version 0.1.0-preview.8
                    
NuGet\Install-Package Goldpath.Messaging -Version 0.1.0-preview.8
                    
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="Goldpath.Messaging" Version="0.1.0-preview.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Goldpath.Messaging" Version="0.1.0-preview.8" />
                    
Directory.Packages.props
<PackageReference Include="Goldpath.Messaging" />
                    
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 Goldpath.Messaging --version 0.1.0-preview.8
                    
#r "nuget: Goldpath.Messaging, 0.1.0-preview.8"
                    
#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 Goldpath.Messaging@0.1.0-preview.8
                    
#: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=Goldpath.Messaging&version=0.1.0-preview.8&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Goldpath.Messaging&version=0.1.0-preview.8&prerelease
                    
Install as a Cake Tool

Goldpath.Messaging

Message-path floor of the Goldpath enterprise asset, composed on the MassTransit 8.x OSS line (v9 went commercial — the golden path carries no commercial-license surprise; exit strategy documented in docs/rfc/goldpath-messaging.md D1).

Getting started

builder.AddGoldpathMessaging(bus =>
{
    bus.AddConsumer<OrderConfirmedConsumer>();
    bus.AddGoldpathOutbox<OrdersDbContext>(o => o.UsePostgres());   // features.outbox — template wires the lock provider

    bus.UsingRabbitMq((context, cfg) =>                        // transport from manifest providers.broker
    {
        cfg.Host(connectionString);
        cfg.ConfigureGoldpathEndpoints(context);                    // guard + propagation + retry + conventions
    });
});

Consuming through the seam (ADR-0013)

public sealed class OrderConfirmedHandler(OrdersDbContext db) : IIntegrationEventHandler<OrderConfirmed>
{
    public async Task HandleAsync(OrderConfirmed e, IntegrationEventContext context, CancellationToken ct)
    {
        // context: MessageId (the inbox key), CorrelationId, Tenant, RetryAttempt, Headers — no library type.
        ...
    }
}

builder.AddGoldpathMessaging(bus =>
{
    bus.AddGoldpathHandler<OrderConfirmed, OrderConfirmedHandler>();   // or bus.AddGoldpathHandlers(typeof(Program).Assembly)
    ...
});

A handler drains the SAME queue the consumer of that name drained (OrderConfirmedHandler and OrderConfirmedConsumerorder-confirmed), so moving to the seam changes no wire. Retry, redelivery, the inbox and tenant restoration are the pipeline's — a throw is a retry, then the error queue. IConsumer<T> still works (analyzer GP0405 says so, Info until the templates adopt the seam at the next train; Warning from then on).

Configuration

Bound from Goldpath:Messaging:

{ "Goldpath": { "Messaging": { "Retry": { "ImmediateCount": 3 } } } }

Redelivery defaults: 5m/15m/30m, then the error queue — messages are never silently dropped.

Advanced

The event boundary (the rule everything hangs on):

public record OrderConfirmed(Guid OrderId) : IIntegrationEvent;   // broker-bound — marker REQUIRED
public record OrderTotalsChanged(...) : INotification;            // in-process — Mediant, never the bus

Publishing an unmarked type throws (runtime guard; analyzer GP0401 will catch it at build). A Mediant notification must never carry IIntegrationEvent (GP0402) — one world only.

  • Outbox (AddGoldpathOutbox<TContext>): publish commits atomically with business data; consumer-side inbox dedup included; 30m duplicate-detection window default.
  • Propagation: X-Goldpath-Tenant and X-Correlation-Id flow through publish/consume automatically; on consume the tenant is restored into the message-scoped GoldpathMessageTenantContext (ITenantContext in golden-path services).
  • Kebab-case endpoint naming; OTel tracing flows via MassTransit's built-in instrumentation.

Providers

Transport chosen in the manifest (providers.broker): rabbitmq, kafka, inmemory (tests/dev). Transport packages and the outbox lock provider are wired by the template; this package references only MassTransit core + EF outbox.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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.

NuGet packages (3)

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

Package Downloads
Goldpath.Campaign

Governed mass-execution (L4) for the Goldpath enterprise asset: a campaign is a durable plan of enumerated targets released to broker consumers under a LIVE policy - TPS pacing, daily quota, send windows, max-in-flight - by a single long-lived leader (pacer on Goldpath.Jobs). Claim-before-execute makes double-sends structurally impossible; outcomes flow through a batching sink so 30M items never mean 30M writes; every failure lands in the repair queue with per-item replay (campaign RFC D1-D8).

Goldpath.FileExchange

Ring B file-based integration rails for the Goldpath enterprise asset: rails declared as data with baked, compile-checked closures — file-level contracts, idempotent (file, line) ingestion, per-row quarantine that never stops the batch, zero-duplicate replay/reprocess, and archive marks — with the lifecycle published as integration events. The rail is the unit, not the pieces.

Goldpath.Approvals

Ring B human approval workflows for the Goldpath enterprise asset: amount-laddered authority chains declared as data, four-eyes and maker-checker enforcement, bounded delegation, deadline escalation, and the worklist — with every lifecycle step audited and published as integration events. Replaces the e-mail approval thread, not the humans in it.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.8 110 9/7/2026
0.1.0-preview.7 107 9/1/2026
0.1.0-preview.6 173 8/4/2026
0.1.0-preview.5 92 7/28/2026
0.1.0-preview.4 82 7/27/2026
0.1.0-preview.3 68 7/25/2026
0.1.0-preview.2 79 7/13/2026
0.1.0-preview.1 167 7/13/2026