Developer shares hard lessons building a Slack deploy queue bot with NestJS and Redis
A software developer documented the technical challenges of building a Slack bot to manage deployment queues across multiple teams and environments, sharing lessons learned in production. The project used NestJS, PostgreSQL via Prisma, Redis with BullMQ for background jobs, and Slack's Bolt SDK for integration. One key challenge involved Slack's Block Kit lacking native support for dependent dropdowns, which was solved by dynamically updating modals and changing block IDs to bypass Slack's internal state cache. Timeout logic for queue entries was made restart-safe by storing scheduled jobs in Redis via BullMQ with deterministic job IDs, rather than relying on in-memory setTimeout calls. The developer also replaced a stored queue-position column with a runtime-computed SQL query to avoid race conditions and data corruption when users leave the queue mid-process.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)
Log in to join the discussion and vote.
Log in