`bundle install` Y U SO SLOW: Server Edition
summary
Explains extracting the dependency endpoint into a separate Sinatra service and running the Bundler API on Heroku that serves marshalled dependency payloads from a local Postgres cache built from rubygems tables; replaces the slow specs. Sync moves from a 16-minute run to 2–3 minutes after switching the sequential updater to a consumer thread pool and adding webhook support; initial polling used the 1.2MB modern index and consumed ~380% CPU on the original box. Prototypes a replay service using Heroku HTTP log drains to replay production traffic and compare MRI vs JRuby (95th‑percentile latency spikes observed).
AI-written summary · about
chapters (9)
- 0:00Introduction and speaker intro
- 3:57Why bundler exists and its slowness
- 9:59Bundler API speed improvements
- 12:03RubyGems.org downtime analysis
- 14:36Extracting API into separate service
- 17:44Syncing code and caching metadata
- 21:15Polling and webhooks updates
- 25:16Bundler API replay project
- 33:26Q&A on gem signing and performance
related talks
47mbundle install Y U SO SLOW: Server Edition
45m`bundle install` Y U SO SLOW: Server Edition
37mDeathmatch Bundler vs Rubygems.org
37mExtreme Makeover: Rubygems Edition
29mFaster Bundler, Happier Developers
46mHeroku 2014: A Year in Review
01mExtreme Makeover - Rubygems Edition
30mScaling Rails with JRuby in 2022
