The StreamModule system is a result of several different ideas about how distributed (especially widely distributed) systems should function. Instead of attempt ing to hide asynchronous behavior behind a synchronous facade, it attempts to make it easier to write programs that deal with asynchronous behavior. It achieves this using event-driven programming combined with a pipeline-like architecture.