Phase 13Days 130-135

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.

Progress

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

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