Watcher NOTAM Lifecycle
This document explains what the Watcher API delivers to listeners and how filters.notam_type differs from lifecycle_enabled.
Two Delivery Types
Watcher can send two kinds of webhook events:
kind = "interpretation"Standard interpreted NOTAM delivery. Listener filters are evaluated here.kind = "lifecycle"Additional lifecycle delivery for a NOTAM that was already delivered earlier and was later cancelled (NOTAMC) or replaced (NOTAMR).
What filters.notam_type Means
filters.notam_type Meansfilters.notam_type applies only to standard interpreted deliveries.
Supported values:
NorNOTAMNRorNOTAMR
Not supported:
CorNOTAMC
Important:
Selecting
notam_type = ["R"]means: deliver interpreted NOTAMs whose own type isR.It does not mean: deliver the old NOTAM that got replaced.
It does not control lifecycle cancellation or replacement notifications.
What lifecycle_enabled Means
lifecycle_enabled Meanslifecycle_enabled = true enables separate lifecycle webhook events.
Lifecycle events are sent only when all of the following are true:
the listener is active
the listener is in
prodmodethe listener has a webhook URL
the listener previously received the original NOTAM by successful production webhook delivery
Normal listener filters are not re-evaluated for lifecycle events. Lifecycle routing is based on prior delivery tracking of the original NOTAM.
Lifecycle Payload Semantics
In a lifecycle payload:
kindis"lifecycle"event_idis a lifecycle event identifiernotamis the lifecycle NOTAM itselfchange.changed_notam_idis the previously delivered NOTAM that changedchange.notam_typeisCorR
That means:
for
NOTAMR,notamis the replacement NOTAMfor
NOTAMC,notamis the cancellation NOTAMin both cases,
change.changed_notam_idpoints to the old NOTAM that was replaced or cancelled
Example: Replacement
Assume the listener already received interpreted delivery for:
old NOTAM ID:
old-uuidold NOTAM number:
A1234/26
Later the stream receives:
new NOTAM ID:
new-uuidnew NOTAM number:
A1300/26message contains
NOTAMR A1234/26
Watcher sends:
Interpretation:
the payload
notamis the new replacement NOTAMchange.changed_notam_idis the old NOTAM that was replaced
Example: Cancellation
Assume the listener already received interpreted delivery for:
old NOTAM ID:
old-uuidold NOTAM number:
A1553/26
Later the stream receives:
cancellation NOTAM ID:
cancel-uuidcancellation NOTAM number:
A1572/26message contains
NOTAMC A1553/26
Watcher sends:
Interpretation:
the payload
notamis the cancellation NOTAMchange.changed_notam_idis the old NOTAM that was cancelled
Common Questions
If I set filters.notam_type = ["R"], will I receive the old NOTAM that got replaced?
No.
You will receive interpreted replacement NOTAMs whose own type is R. The old replaced NOTAM is not sent as the main notam object.
If you also enable lifecycle delivery, then lifecycle payloads will include:
the replacement NOTAM in
notamthe old replaced NOTAM ID in
change.changed_notam_id
If I set filters.notam_type = ["N"] and enable lifecycle delivery, can I still receive lifecycle replacement events later?
Yes.
If the listener already received the original NOTAM by production webhook, later lifecycle notifications are based on that prior delivery, not on re-running the current filters.
Can the same replacement NOTAM (NOTAMR) be delivered twice?
Yes.
If all of the following are true:
the listener previously received the old original NOTAM
lifecycle_enabled = truethe new replacement NOTAM is also interpreted and matches the listener filtering for normal interpreted delivery
then the same replacement NOTAM can be delivered twice:
once as
kind = "lifecycle"once as
kind = "interpretation"
In that case:
both messages may contain the same
notam.idkindwill be differentevent_idwill be differentdelivery order is not guaranteed
Consumers should treat kind and event_id as the event identity, not only notam.id.
Last updated