ZeroMQ Cache - TcmExtensions/TcmCDService GitHub Wiki

Introduction

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

Publisher - Subscriber

Linked from ZeroMQ Guide

Additionally the Tridion process can ask the TcmCDService publisher to publish messages by using a normal request/reply communication:

Publisher - Subscriber - Submission

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.

Details

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]
⚠️ **GitHub.com Fallback** ⚠️