Keep cancellation messages in memory until they expire
Use cases
Assume the following timeline:
- T+00:00: A TraFF consumer application receives a TraFF message from Qz, with a validity of 1 hour, and adds it to its cache.
- T+00:10: The TraFF consumer shuts down.
- T+00:20: Qz sends out a cancellation for the message.
- T+00:30: The TraFF consumer starts up again and polls all TraFF sources for cached messages.
Desired behavior
When polled (at T+00:30), Qz should include the cancellation message it sent at T+00:20 (or any updates to it sent later).
Benefits of the solution
The consumer app would reliably receive the cancellation for the message, even if it missed some real-time information.
Otherwise, if Qz forgets about the cancelled message immediately and no longer includes it any query replies, the consumer app would happily continue working with the stale message until it expires (or Qz receives and forwards another message overriding the stale one).
Possible drawbacks
None known.