Guest post for RubyLearning
As well as introducing eventmachine I tried to explain how one might go about creating clean abstractions in the upside down world of evented programming.
I’ve got a lot more patters waiting in the wings, so hopefully this gets a good reception!