High Availability by Offloading Work Into the Background - Shopify
Jul 8, 2021

Summary
This post details how Shopify uses background jobs to offload work and improve high availability. It explains the concept of background jobs, their benefits (response times, spikeability, retries, parallelization, prioritization, scheduling, code simplicity), and challenges (breaking changes, no exactly-once delivery, non-transactional queuing). It proposes the outbox pattern as a solution for transactional queuing.