Dev.to
7/18/2026

Building a Slack Deploy Queue Bot: Lessons from NestJS, BullMQ, and Redis in Production
Short summary
A technical breakdown of building a Slack deploy queue bot with NestJS, BullMQ, and Redis in production. Key lessons include handling Slack Block Kit's lack of dependent select inputs via dynamic block_ids, using BullMQ deterministic jobIds for crash-safe timers, computing queue position at runtime instead of storing it, and running daily reconciliation jobs to catch silent webhook failures. The post includes real code snippets for each solution.
- •Use dynamic block_ids in Slack Block Kit to bypass internal state cache for dependent select inputs
- •Persist timers in Redis via BullMQ with deterministic jobIds to survive process restarts
- •Compute queue position at runtime instead of storing it to avoid race conditions on exits
- •Run daily reconciliation jobs to catch silent webhook failures and prevent database drift
Generated with AI, which can make mistakes.
Is this a good recommendation for you?


