A lightweight Go library that handles RabbitMQ auto-reconnect, publishing retry, and channel pooling to simplify robust messaging.
Rabbitroutine is a lightweight Go library that automates RabbitMQ connection recovery and publishing retry routines. It solves the problem of handling network failures and broker restarts by providing automatic reconnection, channel pooling, and configurable retry mechanisms for message publishing.
Go developers building resilient microservices or distributed systems that rely on RabbitMQ for messaging and need robust failure handling without manual reconnection logic.
Developers choose Rabbitroutine because it abstracts away the complexity of RabbitMQ reconnection management, offers both fire-and-forget and ensured publishing with retry support, and includes channel pooling for better performance—all in a minimal, focused library.
Lightweight library that handles RabbitMQ auto-reconnect and publishing retry routine for you.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Manages connection and channel errors separately with configurable retry intervals, ensuring reliable messaging during network interruptions, as highlighted in the Key Features.
Re-declares queues, exchanges, and bindings after reconnection via the Consumer interface, preventing message loss after broker restarts, as shown in the consumer example.
Offers FireForgetPublisher and EnsurePublisher with RetryPublisher wrapper for handling transient failures, providing flexibility in publishing strategies.
Maintains a pool of channels for publishing, improving throughput and offering pool size statistics for monitoring, as detailed in the documentation.
Requires implementing the Consumer interface for declaration logic, adding initial setup code compared to more integrated or drop-in solutions.
Specifically tied to RabbitMQ, making it unsuitable for projects considering multi-broker support or migration to other messaging systems.
The reconnection, pooling, and retry features can introduce unnecessary complexity and resource usage in low-throughput or straightforward applications.