Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. messagebus

messagebus

MITJavaScriptv1.1.5

A simple asynchronous message bus library for Go applications.

Visit WebsiteGitHubGitHub
287 stars48 forks0 contributors

What is messagebus?

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.

Target Audience

Go developers building applications that require decoupled component communication, such as microservices, event-driven systems, or modular monoliths.

Value Proposition

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.

Overview

Go simple async message bus

Use Cases

Best For

  • Implementing pub/sub patterns in Go applications
  • Decoupling components in microservices architectures
  • Building event-driven systems with async processing
  • Managing in-process communication without external brokers
  • Creating scalable Go applications with low-latency messaging
  • Simplifying inter-module communication in modular monoliths

Not Ideal For

  • Systems requiring distributed messaging across multiple services or nodes
  • Applications that need persistent message storage to survive crashes
  • Use cases demanding advanced features like guaranteed delivery or message ordering

Pros & Cons

Pros

High Performance Benchmarks

Benchmark results show publish operations at 250 ns/op with zero allocations, ensuring low latency and efficient memory usage for async handling.

Simple API Design

Offers an intuitive pub/sub interface that makes it easy to decouple components without complex setup, as highlighted in the documentation.

Zero External Dependencies

A pure Go library that avoids reliance on external brokers, simplifying deployment and keeping the dependency graph clean, per the project philosophy.

Comprehensive Documentation

Includes detailed examples and guides on the project website, facilitating quick integration and reducing the learning curve.

Cons

In-Process Limitation

Only supports messaging within a single Go process, so it cannot handle cross-service communication without additional tooling, limiting its use in distributed architectures.

No Built-in Persistence

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.

Minimal Feature Set

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.

Frequently Asked Questions

Quick Stats

Stars287
Forks48
Contributors0
Open Issues2
Last commit5 years ago
CreatedSince 2017

Tags

#event-driven#message-queue#queue#event-sourcing#async#ddd#asynchronous#broker#message-broker#pubsub#microservices#decoupling#concurrency#go#message-bus

Built With

G
Go

Links & Resources

Website

Included in

Go169.1k
Auto-fetched 14 hours ago

Related Projects

AsynqAsynq

Simple, reliable, and efficient distributed task queue in Go

Stars13,546
Forks972
Last commit1 month ago
saramasarama

Sarama is a Go library for Apache Kafka.

Stars12,501
Forks1,851
Last commit18 hours ago
CentrifugoCentrifugo

Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably, socket.io, Phoenix.PubSub, SignalR. Set up once and forever.

Stars10,544
Forks723
Last commit1 day ago
WatermillWatermill

Building event-driven applications the easy way in Go.

Stars9,810
Forks500
Last commit2 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub