Running everything synchronously in production hides latency until traffic spikes. Jobs let you retry failures, throttle third-party APIs, and keep web workers responsive.
Design payloads to be idempotent where possible, and log enough context to replay a failed job without guessing. Dead-letter handling beats silent drops.
Whether you use Horizon, a managed worker, or plain queue:work, monitor depth and failure rates—they are early warnings for upstream issues.