Retention Time
You may configure a durable or durable template with a retention time. Only standard durables with prefetch and shared durables may have a retention time.
For more information, see Durable Details Panel
The retention time feature allows users to keep messages for a certain period. This would not affect the ability of consumers to receive and acknowledge messages normally. The messages may be replayed later by rewinding the durable, for example if some analysis is required, or lost data needs to be recovered. For more information, see Rewinding a Durable.
Administrators should be mindful of how much data is retained. A long retention time can greatly increase storage requirements.
When retention time is set, and a subscriber acknowledges a message, the persistence service does not always delete the message immediately. Instead, if the message's age, as measured from send time, is less than the retention time, the message is retained. Later, once the message's age exceeds the retention time, it is deleted permanently.
When retention time is set, and a message's age exceeds the retention time, but the message has not been acknowledged, the message is not deleted. The message is deleted immediately if it is acknowledged.
Acknowledged and retained messages cannot be browsed or delivered to subscribers. The administrator or the client application must rewind the durable to make those messages available again.
Administrators can monitor the number of acknowledged or unacknowledged messages. FTL server reports the total message count for each durable (which includes acknowledged and unacknowledged messages), as well as the unacked message count for each durable. For more information, see Durables List.
Retention time does not override byte limits, message limits, delivery limits, or message TTL. Once any of those limits is reached, the message may be discarded, regardless of whether it has been acknowledged and regardless of whether the retention time has been set.
For example, if message TTL and retention time are both set, and the message's age is greater than the TTL, the message will be discarded, regardless of retention time. Similarly, if the message has been acknowledged, and its age is greater than the retention time, the message will be discarded, regardless of message TTL. Message TTL, byte limit, message limit, and delivery limit should be thought of as storage limits, orthogonal to retention time.