Keynote: A Beginner's Guide to Puma Internals
summary
Puma is a Rack web server that combines pre-forking + thread-pool model with an in-process reactor buffers incomplete requests to avoid blocking threads on slow clients. Codebase is roughly ~5k Ruby + ~4k native C/Java lines, uses Regal for parsing and a custom SSL extension, and requires bundle ext compilation to build locally. Design goal keeps per-request overhead under a millisecond; in MRI a single Puma worker with four threads often equals the throughput of two Unicorn workers while using less memory.
AI-written summary · about
chapters (14)
- 0:00Puma introduction
- 3:53Maintainer philosophy
- 6:22Design goals of Puma
- 7:50Web servers and sockets
- 9:37Rack applications
- 12:53Puma pre-forking architecture
- 15:21Thread pools and GIL
- 19:58Reactor and buffering
- 21:24Key classes and extensions
- 24:16Runner and thread pool classes
- 28:34Configuring Puma
- 30:40Request handling
- 33:30Contributing to Puma
- 39:30Resources and closing
related talks
41mHow Puma Works
25mUnderstanding Ruby Web Server Internals: Puma, Falcon, and...
25mPuma or Falcon What's the Best Choice for Scalability?
01h 03mKeynote: Off the Rails
37mRhebok, High Performance Rack Handler
21mConquering Massive Traffic Spikes in Ruby Applications with Pitchfork
35mExploring Merb
30mGrow Your Unix Beard Using Ruby
