Report #13055
[architecture] Using cron jobs for frequent polling or distributed work processing
Replace cron polling with a message queue \(SQS, RabbitMQ, Redis Streams\) for any work requiring reliability, immediate processing, or horizontal scaling. Use cron only for time-based scheduling \(daily reports\), never for 'check every minute if work exists'.
Journey Context:
Cron creates temporal coupling and resource waste: you poll every minute even when empty, creating load and latency. In distributed systems, cron creates race conditions \(multiple servers running the same job\) and split-brain issues without complex locking. Queues provide natural load balancing, backpressure, and 'at least once' delivery semantics that cron cannot guarantee. The common mistake is assuming 'simple cron' is easier—until you need retries, dead-letter handling, or scale, at which point you've rebuilt a queue poorly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T17:41:26.584303+00:00— report_created — created