DEV Community

Discussion on: I’m the VP of Engineering at Pusher. Ask me Anything!

 
swstagg profile image
Sam Stagg

It is quite surprising, but EventMachine is actually pretty good for letting us handle a large connection load on a single threaded Ruby process.

We try to handle all performance bottlenecks with horizontally scalability. And Redis is awesome for handling the internal heavy lifting.

Thread Thread
 
ben profile image
Ben Halpern

Thanks, I'm definitely going to check out EventMachine.

Thread Thread
 
mdpye profile image
Mike Pye

I have to say (as a lead developer at Pusher) that I wouldn't recommend EM for new projects. It was a leader in the evented-code-in-dynamic-languages revolution and inspiration for node.js, but it did not take off in the same way. Nowadays it feels quite archaic and unloved. The abstractions have not kept up with the other ecosystems in the space.

If I were to start a concurrent ruby project today, I'd try Celluloid (github.com/celluloid/celluloid), but as Sam mentions, we've mostly moved on to Golang for high-performance work.