This is interesting, via Graham Burnett, Why Events Are A Bad Idea (for high concurrency servers):
Event-based programming has been highly touted in recent years as the best way to write highly concurrent applications.
Having worked on several of these systems, we now believe this approach to be a mistake. Specifically, we believe that threads can achieve all of the strengths of events, including support for high concurrency, low overhead, and a simple concurrency model. Moreover, we argue that threads allow a simpler and more natural programming style.