Transactional operation processing among clients is increasingly required of publish/subscribe (pub/sub) systems in enterprise settings. For instance, in workflow management, dispatching or consolidating process instances requires a set of publications and (un-) subscriptions by different clients to be executed according to ACID semantics. As pub/sub systems are usually optimized for performance and scalability, such properties are often neglected, which results in unexpected system behavior such as misrouted events.
In this paper, we provide a model for supporting multi-client transactions in pub/sub. We formalize ACID properties for pub/sub, and define a consistency model and isolation level required to support the aforementioned scenarios. We present three approaches for two transaction types: STX, where a coordinator has full static knowledge about all operations in a transaction, and DTX/DTXni, where operations by other clients are dynamic and unknown to the coordinator. We describe algorithms to realize these approaches and experimentally evaluate our implementations by comparing them to a baseline mechanism, which simulates these guarantees partially by introducing manual waits between operations.
Our results show that the uncertainty introduced by the dynamic behavior renders DTX/DTXni costly, and suitable only for small configurations or rare occasions. STX, in contrast, offers enriched semantics for many applications in a scalable manner without disrupting regular event routing.
Readers who enjoyed the above work, may also like the following: