How We Solved the Thundering Herd Problem | by Antross | The PayPal Technology Blog | Medium
At Braintree, a PayPal company, it is no secret that we are big users of Ruby on Rails (Rails for short). We are also big users of a component of Rails called ActiveJob. ActiveJob is an API abstraction on top of existing background job frameworks such as Sidekiq, Shoryuken and many more. In this blog post, I’m going to share how introducing jitter into Rails’ background job API, ActiveJob, stopped a persistent but difficult to diagnose background-process issue. Buckle up! We have many merchants using our Disputes API, some in real-time in response to a webhook, and others on a daily schedule. That means our traffic is highly irregular and difficult to predict, which is why we try and use autoscaling and asynchronous processing where feasible. The system architecture: The architecture is simplified for illustration purposes. The flow though is straightforward — merchants interact via SDKs with the Disputes API and once finalized, we enqueue a job to SQS for the submission step. That que
How We Solved the Thundering Herd Problem Antross 6 min read · May 6, 2022 -- 1 Listen Share At Braintree , a PayPal company, it is no secret that we are big users of Ruby on Rails (Rails for short). We are also big users of a component of Rails called ActiveJob . ActiveJob is an API abstraction on top of existing background job frameworks such as Sidekiq , Shoryuken and many more . In this blog post, I’m going to share how introducing jitter into Rails’ background job API, ActiveJob, stopped a persistent but difficult to diagnose background-process issue. Buckle up! Context We have many merch
Explore this link on the map →saved by
related reading
- Queues Don't Fix Overloadferd.ca
- Choose Boring Technologyboringtechnology.club
- More Than DNS: The 14 hour AWS us-east-1 outage – Jonathon Belotti [thundergolfer]thundergolfer.com
- The Distributed Computing Manifesto | All Things Distributedallthingsdistributed.com
- Temporal Primer - Building Long-Running Systemsarpitbhayani.me
- To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models - Shopifyshopify.engineering
- Scaling long-running autonomous coding · Cursorcursor.com
- 2410.21680arxiv.org
- Building and operating a pretty big storage system called S3 | All Things Distributedallthingsdistributed.com
- Building observability into Notion’s dead-letter queuenotion.com
- Operating Well: What I Learned at Stripeevery.to
- Scaling Temporal: The basics | Temporaltemporal.io