A simple asynchronous message bus library for Go applications.
message-bus is a Go library that implements a simple asynchronous message bus for in-process communication. It allows different parts of an application to communicate via publish-subscribe patterns without tight coupling, solving the need for scalable and maintainable event-driven architectures.
Go developers building applications that require decoupled component communication, such as microservices, event-driven systems, or modular monoliths.
Developers choose message-bus for its minimalistic design, high performance, and ease of integration, offering a native Go solution without external dependencies for efficient async messaging.
Go simple async message 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.
Benchmark results show publish operations at 250 ns/op with zero allocations, ensuring low latency and efficient memory usage for async handling.
Offers an intuitive pub/sub interface that makes it easy to decouple components without complex setup, as highlighted in the documentation.
A pure Go library that avoids reliance on external brokers, simplifying deployment and keeping the dependency graph clean, per the project philosophy.
Includes detailed examples and guides on the project website, facilitating quick integration and reducing the learning curve.
Only supports messaging within a single Go process, so it cannot handle cross-service communication without additional tooling, limiting its use in distributed architectures.
Messages are handled in-memory and not persisted, leading to data loss on application failure, which is a risk for systems with high reliability requirements.
Focuses on core pub/sub without advanced capabilities like message ordering, dead-letter queues, or built-in error handling, requiring custom implementations for complex scenarios.