Redis & BullMQ
Caching, rate limiting, pub/sub, and background jobs — the production toolbelt
Phase Goal
Use Redis correctly and know when NOT to: caching that cuts latency, rate limiting that protects your API, pub/sub that glues real-time servers together, and BullMQ background jobs with retries and dead-letter handling.
Open the written lectures for this course before checking off the phase topics.
Day 130: Redis Fundamentals
Day 131: Caching Patterns
Day 132: Rate Limiting & Sessions
Day 133: Pub/Sub & Real-Time Glue
Day 134: Background Jobs with BullMQ
Day 135: Project — Batch Geocoding Dispatch Service
Batch Geocoding Dispatch Service — DEPLOYED
Accept address batches from outreach teams, cache normalized lookups, rate-limit tenant imports, queue provider calls and map-bundle generation, retry transient failures safely, and report per-row progress. Use Redis, BullMQ, managed Redis, observability, and before/after latency and provider-call measurements.
- Cache-aside reads with invalidation and a documented cache key strategy.
- Rate limits that return a useful retry response instead of silently failing.
- Background report job with retries, dead-letter handling, progress state, and measured latency improvement.
Phase Complete!
After this phase, you'll be able to:
- Redis data types, TTL, eviction, and ioredis usage
- Caching patterns (cache-aside, write-through) + invalidation & stampede control
- Rate limiting (fixed/sliding/token-bucket) and Redis sessions
- Pub/sub, the Socket.io Redis adapter, and when to use Streams
- BullMQ queues/workers with retries, backoff, cron, and dead-letter
- Monitoring queues and running workers in production
You can make an app fast and resilient under load — caching hot paths, protecting endpoints, and moving heavy work off the request cycle.