A lightweight peer-to-peer service bus for .NET applications, built with CQRS principles for fast and resilient communication.
Zebus is a lightweight peer-to-peer service bus for .NET applications that facilitates communication between services using events and commands. It is built with CQRS principles to separate read and write operations, enabling fast, resilient messaging without a central broker. The library abstracts away messaging complexity, allowing developers to focus on business logic while achieving high throughput and low latency.
.NET developers building distributed systems, microservices, or event-driven applications that require efficient and reliable inter-service communication. It is particularly suited for teams needing a production-tested messaging solution without the overhead of a broker.
Developers choose Zebus for its brokerless peer-to-peer architecture, which reduces latency and eliminates single points of failure. Its proven stability in high-volume environments, optional message persistence, and automatic handler discovery provide a robust and developer-friendly alternative to traditional message brokers.
A lightweight Peer to Peer Service Bus
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Eliminates the central broker for direct peer-to-peer messaging, achieving 140k messages per second throughput and sub-500µs latency as documented in the performance benchmarks.
Used in production since 2013 handling hundreds of millions of messages daily, demonstrating reliability and robustness in high-volume environments.
Automatic handler discovery scans assemblies and abstracts messaging complexity, allowing developers to focus on business logic with minimal setup code.
Supports both events for broadcasting and commands for targeted actions, enabling clean implementation of CQRS principles as shown in the demo.
Restricted to .NET applications, making it unsuitable for polyglot architectures or integration with services in other languages like Java or Python.
Requires configuration and maintenance of peer directories and network setups, which can be more involved than using a centralized broker with out-of-the-box tooling.
Message persistence is not enabled by default; without explicit setup, messages can be lost during peer failures, potentially compromising reliability for critical systems.