EventMachine: Get Excited By Scalable Non-Blocking I/O
EventMachine is a simple(ish), fast, event-driven I/O library for Ruby. Its goal is to provide highly scalable I/O performance with an easy-to-use API wrapped around the nastiest parts of the process (since typical Ruby coding practices aren't particularly event-driven friendly). Aman Gupta has put together an awesome 114-page deck of slides
(also available as a PDF) that walks through EventMachine with lots of practical code examples.
The presentation walks through:
- Who uses EventMachine (a lot of big guys - Heroku, GitHub, 37signals, Engine Yard, PostRank)
- What EventMachine is good for
- Ruby's other I/O solutions (and why they suck)
- What a "reactor" is
- How to write asychronous code with EventMachine's API
- How EventMachine provides event-compatible iterators and timers
- EventMachine's message channels
Even though Aman's slides are meant to go alongside a live presentation, they stand well on their own and provide more than enough incentive to check out EventMachine is event-driven I/O is something that would benefit you, so stop reading this post and get flicking through Aman's awesome slides!