Wide-Area Durables

Client applications can publish and subscribe to wide-area durables across network boundaries. To enable this behavior, administrators define forwarding zones and wide-area stores.

Background

Ordinarily, a network limits the geographic scope of persistence. That is, a persistence cluster implements a store, and the durables of the store are accessible only to publishers and subscribers running within the network that connects the persistence services in the cluster.

Yet in some enterprises, it is important to access durables remotely, across network boundaries. That is, the publishers and subscribers on a durable are in separate networks, connected by a wide-area network (WAN). Wide-area durables support this situation.

Motivation

Consider a chain of retail outlets that generate data about sales, inventory, and expenses. In each outlet, some application programs publish messages with this data, and other application programs subscribe to those messages. The outlet uses durables for delivery assurance, so subscribers receive every message.

With wide-area durables, application programs at corporate headquarters can also subscribe to those durables, automatically receiving messages from the retail outlets.

Infrastructure

The durables of a wide-area store are accessible to publishers and subscribers across a WAN link.

To designate a wide-area store, assign it to the special forwarding cluster.

Forwarding zones delineate the scope of wide-area durables. A forwarding zone contains a set of persistence clusters, which cooperate to forward wide-area durables among all the persistence clusters in that zone. (A zone can govern more than one wide-area store. A cluster can participate in more than one zone.)
Note: Only the dynamic durables in a wide-area store behave as wide-area durables. (Static durables do not support wide-area behavior.)
Note: Wide-area durables can be either standard durables or shared durables. Wide-area stores do not support last-value durables nor maps.

Behavior

For example, in the diagram, store S is designated as a wide-area store, and assigned for forwarding in zone Z. All the clusters in zone Z implement projections of store S (blue dashed lines)

Application programs in Rio, London, and Tokyo can publish and subscribe to the durables of store S, and the clusters automatically ensure that durable subscriptions and messages are available as needed in all the projections.

In this example, subscribers in the three clusters within zone Z subscribe to durable D1. The clusters automatically forward messages in D1 to one another within zone Z, based on durable subscriber interest. When a publisher in London publishes a message to D1, the message is available to all the subscribers of D1 throughout zone Z (red arrows).

If the Rio cluster did not have any subscribers to D1, then the London cluster would not forward it to Rio. This behavior conserves WAN bandwidth and persistence service memory.

Forwarding of Wide-Area Durables
Notice that two conditions are necessary to enable wide-area durables - a forwarding zone and a wide-area store assigned to it. Consider the backward-compatible results when either condition is false.
  • The Delft cluster is outside of forwarding zone Z. Even though the Delft cluster implements store S, which is designated as a wide-area store of zone Z, the cluster does not forward store S, neither out nor in.
  • Store T is not a wide-area store, so it remains functionally outside zone Z. Instead it is local to the Tokyo cluster. Its durables are local as well - the cluster does not forward the durables of store T, neither out nor in.