Skip to content

feat: CCP-6150-Migrate queueing from Bull to BullMQ - #286

Merged
barrfalk merged 7 commits into
mainfrom
CCP-6150-De-duplicate-the-email-and-SMS-delivery-workers-and-Bull-upgrade
Oct 23, 2026
Merged

barrfalk merged 7 commits into
mainfrom
CCP-6150-De-duplicate-the-email-and-SMS-delivery-workers-and-Bull-upgrade

Conversation

@barrfalk

@barrfalk barrfalk commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Replaced Bull with BullMQ across backend queues, workers, and tests, including typed Queue/Job usage, new Queue/Worker/QueueEvents creation helpers, and a dedicated :mq Redis key prefix to isolate BullMQ keys. Introduced shared job policy utilities (job-options.ts) for retry/backoff/retention, refactored worker execution into QueueModule-managed processors, and extracted shared delivery logic into DeliveryWorker, MergeBatchRunner, and DeliveryFailureHandler. Updated monitoring, reconciliation, webhook delivery, cancel/reschedule job handling, and load-test drain scripts/workflow to match BullMQ semantics and naming.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update
  • Documentation update

How Has This Been Tested?

  • New unit tests
  • New integrated tests
  • New component tests
  • New end-to-end tests
  • New user flow tests
  • No new tests are required
  • Manual tests (description below)
  • Updated existing tests

Checklist

  • I have read the CONTRIBUTING doc
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have already been accepted and merged

Further comments


Thanks for the PR!

Deployments, as required, will be available below:

Please create PRs in draft mode. Mark as ready to enable:

After merge, new images are deployed in:

Replaced Bull with BullMQ across backend queues, workers, and tests, including typed Queue/Job usage, new Queue/Worker/QueueEvents creation helpers, and a dedicated `:mq` Redis key prefix to isolate BullMQ keys. Introduced shared job policy utilities (`job-options.ts`) for retry/backoff/retention, refactored worker execution into QueueModule-managed processors, and extracted shared delivery logic into `DeliveryWorker`, `MergeBatchRunner`, and `DeliveryFailureHandler`. Updated monitoring, reconciliation, webhook delivery, cancel/reschedule job handling, and load-test drain scripts/workflow to match BullMQ semantics and naming.

@mgtennant mgtennant left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@sonarqubecloud

Copy link
Copy Markdown

@barrfalk
barrfalk merged commit 711ea48 into main Oct 23, 2026
34 of 38 checks passed
@barrfalk
barrfalk deleted the CCP-6150-De-duplicate-the-email-and-SMS-delivery-workers-and-Bull-upgrade branch October 23, 2026 22:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants