ServiceConnect
Asynchronous messaging for .NET. Distributed systems, done cleanly —
pub/sub, process managers, routing slips, batteries included.
60-second quickstart
# Install
$ dotnet add package ServiceConnect
$ dotnet add package ServiceConnect.Client.RabbitMQ
// Configure & publish
services.AddServiceConnect(b =>
b.UseRabbitMQ(t => t.Host = "localhost"));
await bus.PublishAsync(new OrderPlaced(correlationId)); Messaging patterns, batteries included
Section titled “Messaging patterns, batteries included”ServiceConnect ships first-class implementations of the patterns you actually reach for when building distributed .NET systems — not a DSL to bolt them together yourself.
Pub/Sub Broadcast messages to every interested subscriber without caring who listens.
Process Manager Coordinate long-running multi-step workflows with first-class state and timeouts.
Routing Slip Attach an itinerary to a message so each step knows exactly where it goes next.
Scatter/Gather Fan out a request to many handlers and aggregate their replies into one response.
Aggregator Batch related messages by key and correlation window, then publish the collected result.
Filters Stamp, compress, dedupe, or redact messages with a pluggable cross-cutting hook.
Streaming Send large payloads in ordered chunks over the same transport, without blowing the broker frame limit.
Polymorphic Messages Dispatch a single publish to handlers of the message type and every base type or interface it satisfies.
Message Deduplication Drop duplicate deliveries at the pipeline boundary using a pluggable idempotency store.
Telemetry OpenTelemetry spans, W3C trace context, and messaging semconv attributes on every publish, send, and consume.