This is an OpenSource library I'm working on that takes a certain approach to handling asynchronous behavior. Mainly, don't try to make it synchronous in any meaningful way.
The basic concept the library is built on is a StreamModule? which represents a processing element in a stream. A StreamModule? has 'sides' (each of which fill a protocol role in what that StreamModule? does) and plugs which can plug into other StreamModule?s.
Anyway, this risks becoming a page to document my work, so I'll stop now. I would greatly appreciate any comments or observations.
http://www.omnifarious.org/StrMod
-- EricHopper