Basic Definitions for Persistence

Store
A data structure that collects a stream of messages.
Durable
A data structure within a store that represents subscriber interest, holds messages for a specific subscriber identity, and tracks acknowledgments as a subscriber object consumes those messages. Each store can contain many durables.

A durable can exhibit one of these behavior types: standard, shared, last-value, or map (see the definitions that follow).

Independent of its behavior type, a durable can exist either as static or dynamic (see the definitions that follow).

Standard Durable
A durable that represents the interest of one subscriber object, strengthening delivery assurance for that subscriber.

Use a standard durable when a subscriber must receive every message in a message stream, even if the subscriber is intermittently disconnected from the message bus. The type of persistence for a standard durable depends on whether the prefetch feature is enabled or disabled:

  • Prefetch Enabled — Messages are received and sent by the server to subscribers. The durable functions as a message broker, with no messages traveling peer-to-peer from publisher to subscriber.
  • Prefetch Disabled — Under normal conditions, messages flow directly from publisher to subscriber, with the store serving as a backup.
Shared Durable
A durable that represents the identical interest of two or more cooperating subscriber objects, apportioning a message stream among those subscribers.

Use a shared durable when a set of subscribers collectively process a message stream in a distributed or parallel fashion, processing every message exactly once.

Last-Value Durable
A durable that represents the interest of potentially many subscriber objects. It stores only the most recent message from one or more message streams.

Use a last-value durable to hold recent context for initializing new subscribers.

Map Durable
A durable that stores a key/value mapping. When a message arrives, a map durable uses the value in the message's key field as the key, and stores the full message as its value. For each distinct key, the durable stores only the most recent value. (Notice that one map durable can hold many key/value pairs.)

Applications can use the map API to get the current value of a key, or to store a key/value pair.

Key values must be strings.

Static Durable
A durable that the administrator defines as part of the store definition. It exists in the store and expresses interest in its message stream even before an application subscribes to it.

Dynamic durables are more convenient than static durables. Use static durables in situations that require administrative control over durables, or to support existing applications.

Dynamic Durable
A durable that an application creates at run time. The store creates it dynamically when an application subscribes to it. It expresses interest in a message stream only from the moment of first subscription. It continues to express interest until a program or an administrator explicitly deletes it from the store.
Tip: Dynamic durables are the simplest way to create and use durables.
Dynamic Durable Template
An administrative definition that supplies parameters for a set of dynamic durables.
Tip: The simplest way to enable dynamic durables is to use the built-in dynamic durable templates when configuring an endpoint; see "Enabling Dynamic Durables," "Enabling Maps," and "Built-In Dynamic Durable Templates" in TIBCO FTL Administration.