http://martinfowler.com/eaaDev/EventCollaboration.html