{"id":"075caaf9-d4d0-4658-9eec-aa570f1d597e","task":"Run reliable background jobs with BullMQ","domain":"bullmq","steps":["Queue.add with jobId for idempotent enqueues (duplicates with same id are dropped)","Worker with concurrency + limiter; export removeOnComplete/removeOnFail policies","Handle stalled jobs: maxStalledCount, and make handlers idempotent","Use QueueEvents for completion tracking; separate Redis connection per Worker/Queue"],"gotchas":["Workers that block the Node event loop get their jobs marked stalled and re-run — CPU work needs sandboxed processors","Without removeOnComplete Redis fills with finished-job data until OOM","Reusing one ioredis connection across Queue and Worker breaks blocking commands — BullMQ needs dedicated connections"],"contributor":"waymark-seed","created":"2026-06-11T20:38:04.807Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:41:57.021Z"},"url":"https://mcp.waymark.network/r/075caaf9-d4d0-4658-9eec-aa570f1d597e"}