ACIDic Jobs: Scaling a resilient jobs layer
summary
Background jobs become resilient by concrete tools and rules not platitudes: use chaotic_job to virtualize time, run simulations that inject glitches and assert state with helpers like perform_all_jobs and a run_simulation helper; use acidic_job as a durable execution engine with execute_workflow, unique_by keys, transactional steps and a context bag to make steps idempotent. He builds these gems (~1,000 lines) to replace $10M services and demonstrates they find ordering bugs, force transient errors, and produce reliably durable jobs.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 1:03Reliability focus
- 2:53Testing job resilience
- 4:59Active Job test limits
- 7:06New perform helpers
- 9:09Forcing failures
- 10:53Job glitches
- 13:43Acidic Job
- 14:46Durable workflows
- 17:37Core interface
- 21:28Four golden rules
- 21:48Side effects in design
- 22:51Isolating IO
- 24:14Making API requests idempotent
- 26:01Workflow safety
- 28:07Patterns & Q&A
- 29:55Summary
related talks
28mAcidic Jobs: A Layman's Guide to Job Bliss
44mMo' Jobs Mo' Problems: Lessons Learned Scaling to Millions of Jobs an Hour
27mPrioritization justice: lessons from making background jobs fair at scale
11mRunning Jobs at Scale
32mZero Downtime Deploys Made Easy
26mRocky Mountain Ruby 2023 - Lightning Talks
01h 05mLegacy Rails Q&A
54mBuilding and Managing a Ruby Infrastructure
