Persistence and Durability: Contrast FTL and EMS

TIBCO FTL and TIBCO EMS both include the concepts of message persistence and durable subscribers. However, the two products use similar terms for concepts that are not exactly parallel. To avoid confusion, understand the following terms and distinctions.

FTL software includes a store-and-forward intermediary called the persistence server. Within it, objects called durables can subscribe to messages and store them. Different types of durables enable a variety of quality of service behaviors.

Persistence

In EMS, each message can be either persistent, non-persistent, or reliable. That is, the delivery mode is a property of the message. The EMS server writes persistent messages to disk.

In FTL, the term persistent does not apply to messages. Rather, persistence is the potential to store messages between the publishers that send them and the subscribers that receive them.

Persistence servers are FTL component processes that can store messages. To use FTL persistence you must explicitly configure and run one or more persistence servers.

Message Storage and Replication

The EMS server implements persistence by writing messages to disk.

The FTL persistence server does not write messages to disk. Instead, it replicates messages across a cluster of persistence servers, each of which keeps messages in process memory. This strategy can reduce message latency.

Durable

In EMS, a subscription on a topic can be durable or non-durable. (A subscription to a queue is implicitly durable.) That is, durablility is a property of the subscription. The EMS server continues to store messages for a durable subscriber, even after the subscriber object has closed. When a client process recreates the durable subscriber, that subscriber can continue consuming the messages that the EMS server has stored in the interim.

In FTL, a durable is an object that combines three actions:
  • It subscribes to messages, expressing message interest on behalf of durable subscribers, even when those subscribers are disconnected or closed.
  • It can track acknowledgements that indicate that durable subscribers have received messages.
  • It can send or resend messages to durable subscribers.

Durables are objects within a persistence server. You can define durables using the stores grid of the realm server GUI.

Message Flow

In EMS, all messages flow through the EMS server, which can also provide message persistence.

In contrast, FTL software implements a peer-to-peer communication network, in which messages flow directly from publishing programs to subscribing programs. Messages do not flow through the realm server. When persistence behaviors are required, messages flow through a persistence server, which stores messages from publishers and forwards messages to subscribers. The persistence server is separate from the realm server, and a client of the realm server.

The durable type determines the message flow.