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.

The FTL server provides a store-and-forward intermediary called the persistence service. 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 services are FTL services that can store messages. To use FTL persistence you must explicitly configure one or more FTL servers to provide persistence services.

Message Storage and Replication

The EMS server implements persistence by writing messages to disk.

The FTL persistence service does not write messages to disk. Instead, it replicates messages across a cluster of persistence services, 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 service. You can define durables using the stores grid of the FTL server GUI.

Message Flow

In EMS, all messages flow through the EMS server, a message broker that can also provide message persistence.

In contrast, FTL software can also implement a peer-to-peer communication network, in which messages flow directly from publishing programs to subscribing programs. Messages need not flow through the FTL server. However, when persistence behaviors are required, messages do flow through an FTL server's persistence service, which stores messages from publishers and forwards messages to subscribers. The FTL server provides the persistence service, which is a client of the FTL server.

The durable type determines the message flow.