Existing workflow management systems encapsulate the data and behavior of a process within its execution scope, preventing other processes from accessing this information until the process terminates. There are, however, many situations in which allowing running processes to exchange information would be a great help to speed up processing time, improve service quality, and increase customer satisfaction. This paper describes the concept and implementation of an inter-process-communication facility based on the exchange of events between concurrently running processes. In contrast to previous approaches based on shared data stored in a common database, our approach has the advantage of being platform independent and providing straightforward support for distribution. In addition, we also explore the problem of process atomicity and consistency when events are revoked due to the abort of processes. The paper presents a family of recovery protocols that allow to control the effects of a...