All work

19 · infrastructure · queues

Messaging queue workers

Send jobs run on dedicated worker hosts, isolated from the web app, and capacity grows by adding hosts on the same queues.

  • Laravel
  • PHP
  • Redis
  • Laravel Horizon
Client
US consumer lender
Role
Backend & Infrastructure Engineer
Period
Devinware LLC · ongoing

Problem

A team-built SMS and email engine for a US consumer lender, with an audience of 2.5M+ recipients, needed its sends to scale without slowing the web app or other background work.

How it works

diagram · How a send job runs
  1. 01QueueSend jobs go onto Redis queues.
  2. 02Dedicated hostsWorker hosts drain those queues, isolated from the web app and other background work.
  3. 03AdjustHorizon adjusts worker processes within configured limits as ready work changes.
  4. 04GrowMore capacity means adding worker hosts on the same queues.

What I built

  • Deployed the engine’s send jobs on Redis queues drained by dedicated worker hosts.
  • Horizon settings that adjust worker processes within configured limits as ready work changes.
  • A topology that grows horizontally: new worker hosts join the same queues.
  • Background work split into dedicated Horizon supervisors per workload, so sends don’t compete with AI, document or export jobs.

Result

Messaging capacity grows by adding hosts, without touching the web app.

media note

Client systems are under NDA, so this case study uses words and a diagram instead of screenshots.