Skip to content
This repository has been archived by the owner on Oct 12, 2021. It is now read-only.
/ rabbit-hole Public archive
forked from yonatankarp/rabbit-hole

This repository generalize the non-blocking retry queue solution for RabbitMQ introduced in this blog post https://programmerfriend.com/rabbit-mq-retry/

License

Notifications You must be signed in to change notification settings

sumup/rabbit-hole

 
 

Repository files navigation

Rabbit Hole

"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

Build Code Style codecov Known Vulnerabilities GitHub last commit GitHub issues GitHub top language Maintenance GitHub

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

About The Project

Background

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.

Solution

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`.

Built With

Getting Started

To build this library locally follow the steps below:

Prerequisites

  • Java 11 or newer
  • Gradle

Installation

  1. Clone the repo:
git clone https://github.com/yonatankarp/rabbit-hole.git
  1. Run Gradle's build command to fetch project dependencies:
gradle build
  1. Publish the library to your local Maven repository:
gradle publishToMavenLocal

Usage

To see how to use the library check our latest integration documentation here.

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions are greatly appreciated 🙏.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request to the main branch

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Yonatan Karp-Rudin - @yonvata - [email protected]

Project Link: https://github.com/yonatankarp/rabbit-hole

About

This repository generalize the non-blocking retry queue solution for RabbitMQ introduced in this blog post https://programmerfriend.com/rabbit-mq-retry/

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%