Services are structured as a set of stages, each with an event queue.
Purposes: support for more connections/node (performance) and detection of overload at node level (graceful degradation).
Support events, not threads. harder model to program??
However stages can use threads.