"Rabbit Hole" allows you to easily create retry mechanisms using any JVM-based language against
RabbitMQ brokers, but without blocking the queue. The implementation is based on the article
Implementing Retries using RabbitMQ and Spring Boot 2.
Explore the docs »
Report Bug
·
Request Feature
When a message fails in the spring-boot-starter-amqp
library, and is configured with an exponential backoff
mechanism, Rabbit will return the message to the top of the queue and block the queue until the message is consumed.
This library introduces a retry mechanism that will not block the main queue, referencing prior art in "Implementing Retries using RabbitMQ and Spring Boot 2".
The major difference between the solution linked above is that this library is that here we generalize the solution using N
queues instead of a single queue`.
To build this library locally follow the steps below:
- Java 17 or newer
- Gradle
- Clone the repo:
git clone https://github.com/yonatankarp/rabbit-hole.git
- Run Gradle's
build
command to fetch project dependencies:
gradle build
- Publish the library to your local Maven repository:
gradle publishToMavenLocal
To see how to use the library check our latest integration documentation here.
See the open issues for a list of proposed features (and known issues).
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions are greatly appreciated 🙏.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request to the
main
branch
Distributed under the MIT License. See LICENSE
for more information.
Yonatan Karp-Rudin - @yonvata - [email protected]
Project Link: https://github.com/yonatankarp/rabbit-hole