Silverback is a powerful, elegant, and feature-rich message bus for .NET, designed to simplify asynchronous messaging, event-driven architectures, and microservice communication. With seamless integration for Apache Kafka and MQTT, it offers robust features for reliability, consistency, and scalability. This core package provides the basic in-memory message bus.
$ dotnet add package Silverback.CoreSilverback is a message bus and broker integration library for .NET. It helps you build event-driven architectures and asynchronous workflows with first-class support for Apache Kafka and MQTT.
Silverback aims to be both high-level (consistent configuration and developer experience) and broker-aware. Kafka is a first-class citizen: features like partition-based parallelism, keys/partitioning, tombstones, Schema Registry integration, idempotency, and transactions are surfaced where they matter, instead of being abstracted away.
Documentation, guides, and samples are available here: https://silverback-messaging.net
Silverback is modular – reference only what you need.
Core:
Broker integration:
Optional features:
Storage (for outbox, client-side offsets, distributed locks):
Testing:
Starting with v5, Silverback targets the latest .NET LTS version only.
services.AddSilverback()
.WithConnectionToMessageBroker(options => options.AddKafka())
.AddKafkaClients(clients => clients
.WithBootstrapServers("PLAINTEXT://localhost:9092")
.AddProducer(producer => producer
.Produce<MyMessage>(endpoint => endpoint.ProduceTo("my-topic")))
.AddConsumer(consumer => consumer
.Consume<MyMessage>(endpoint => endpoint.ConsumeFrom("my-topic"))));
See the docs site for guides, API reference, and runnable examples:
See CONTRIBUTING.md.
MIT License. See LICENSE.