Component Based Software Architecture Using Clojure
dublindan.posterous.com
dublindan.posterous.com
For other languages, posterous has a code tag that automatically highlights/formats for you. They just don't support Clojure very well.
The basic idea is to map (using Clojures parallel pmap) over each component and call the event handler for the event being processed, if the component has one. The code is slightly complicated by wanting a non-global event queue and async event sending, so I use a dynamic binding to rebind the event function so that it can access the local event queue (which is the only mutable variable I use).
I'm sure theres better/simpler/more idiomatic ways of achieving this, but whatever.