ZeroMQ Cache - TcmExtensions/TcmCDService GitHub Wiki
ZeroMQ is an opensource messaging library, which enables quick cross system messaging.
This makes it an ideal library to provide communication between the Tridion Java processes and the TcmCDService .NET process.
By leveraging ZeroMQ provided communication, TcmCDService provides a publisher, which allows the Tridion Java processes to subscribe
Linked from ZeroMQ Guide
Additionally the Tridion process can ask the TcmCDService publisher to publish messages by using a normal request/reply communication:
In the above case the TcmCDService instance service is acting as a message broker. It is also possible to run a separate message broker using TcmCacheService.
On the Java platform the ZeroMQ connectivity is provided by JeroMQ, which is a fully Java native implementation of ZeroMQ, allowing the Tridion content delivery to run on Windows as well as *nix based environments.
On the Windows platform, a .NET native solution NetMQ is used, which runs as .NET native code runs in both 32-bit and 64-bit environments.
ZeroMQ uses an XML serialized com.tridion.cache.CacheEvent, as this allows easy cross-platform communication:
A XML serialized CacheEvent looks like this:
<cacheEvent key="447:1203471:binaryMeta" regionPath="/com.tridion.storage.ItemMeta" type="1"/>
Tridion will receive the event as follows:
CacheChannel - Received event from another VM
[CacheEvent
eventType=Invalidate
regionPath=/com.tridion.storage.ItemMeta
key=447:1203471:binaryMeta]