Patterns of Basecamp's Application Architecture
summary
Argues for a document‑first web model and shows concrete techniques: keybased cache expiration that auto‑invalidates on model changes, Russian doll nested caching plus cache‑digests to avoid template staleness, Turbolinks to keep the JS runtime, and simple polling‑based live updates. Builds a new Basecam and measures a mean response of 27 ms (median 59 ms, 90th 155 ms), and runs live updates at ~100,000 requests/min, so the stack works and delivers native‑feeling speed.
AI-written summary · about
chapters (22)
- 0:00Introduction
- 1:26Frameworks as extractions
- 2:58The Basecamp connection
- 6:07Evolution of technology
- 9:21History of web frameworks
- 11:51Pioneering spirit
- 15:40Growth and contribution
- 18:40Adoption and philosophy
- 21:21Open source motivation
- 23:51Defining the purpose
- 25:47The context of Rails
- 29:16Documents vs GUIs
- 31:44Embracing constraints
- 34:34Native vs Web apps
- 36:28Evolving Basecamp
- 38:52Key-based caching
- 43:23Russian doll caching
- 47:48Cache digests
- 51:02Client-side decoration
- 53:38Permission-based links
- 57:11Turbolinks
- 1:00:32Live updates and conclusion
related talks
51mCode spelunking in the All New Basecamp
28mBuilding in Rails, Backbone, and CoffeeScript
49mKeynote: Best Practices – UI, API and Server-side
51mBuilding Amazing Single Page Applications the Right Way
56mFireside Chat
01h 03mSpeed up your Web Application
01h 12mOpening Keynote - Jeremy Daer
34mCache = Cash! 2.0
