feat(queue): migrate webhook deliveries from Redis/BullMQ to RabbitMQ - #820
Merged
Abdulazeem-code merged 2 commits intoOct 5, 2026
Conversation
…risma-migration
|
@Chummy-debug is attempting to deploy a commit to the Abdulazeem's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@Chummy-debug Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
Owner
|
Please resolve conflicts |
Owner
|
Kindly fix failed checks |
1 similar comment
Owner
|
Kindly fix failed checks |
Chummy-debug
force-pushed
the
feat/backend-rabbitmq-migration-728
branch
from
October 4, 2026 17:32
09dbfbb to
dc019cc
Compare
Owner
|
Kindly resolve conflicts |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Migrates the webhook delivery queue from Redis/BullMQ to RabbitMQ. Publishers now use a durable
topicexchange with per-event routing keys and publisher confirms; consumers use manual acknowledgements, a TTL-based retry queue for exponential backoff, and a dead-letter queue for deliveries that exhaust their attempts. Redis stays in the stack for caching and rate limiting.Related Issue
Addresses the RabbitMQ queue refactor requested in #728.
Changes
AMQP transport
[ADD]
stellar-payment-platform/src/queue/rabbitmqQueue.jsstellar.webhooks(topic exchange),webhook-deliveries(work queue,webhook.#binding),webhook-deliveries.retry(per-message TTL + dead-letter back to the exchange) andwebhook-deliveries.dlq(terminal).Queuepublishes persistent messages and awaitswaitForConfirms()before an enqueue is treated as successful.Workerruns the processor with a fixed concurrency, acks successes, republishes transient failures with a capped exponential TTL, andnacks exhausted jobs to the dead-letter exchange.withQueueRetryfor transient socket/broker errors.[MODIFY]
stellar-payment-platform/src/webhookWorker.jsbullmqQueue/Workerand the Redis connection with the AMQP transport.routingKeyderived from the event name; shutdown closes the worker, queue and shared AMQP connection.[MODIFY]
stellar-payment-platform/src/webhookWorker.main.jsInfrastructure & configuration
docker-compose.ymlrabbitmq:3.13-management-alpineservice (durable volume, healthcheck, AMQP 5672 + management 15672) and wiresRABBITMQ_URLplus adepends_onhealth gate into the backend.stellar-payment-platform/.env.exampleRABBITMQ_URLand clarifies thatREDIS_URL/REDIS_CLUSTER_NODESnow serve caching and rate limiting only.stellar-payment-platform/docs/rabbitmq-queue.mdstellar-payment-platform/package.jsonamqpliband removes the now-unusedbullmqdependency.Tests
stellar-payment-platform/tests/webhook-worker.test.jsstellar-payment-platform/tests/queue/rabbitmq-queue.test.jsVerification Results
docker-composerabbitmq service (durable volume + healthcheck) andRABBITMQ_URLsrc/queue/rabbitmqQueue.jsreplacesbullmqin both webhook workersCloses #728