A NOC team enables outbound webhooks in Catalyst Center so a small Python receiver can open tickets for high-severity assurance events. The receiver must pull event name and severity from the delivered JSON, handle each event only once even when redelivered, and answer the sender quickly to keep retries from piling up. Which receiver logic satisfies all three requirements?
Select an answer to reveal the explanation.
Short Explanation
Your receiver needs an identifier that remains the same when an event is redelivered; use the event id for deduplication. Save the payload first, then answer with HTTP 200 so ticket creation can finish in the background.
Full Explanation
Catalyst Center, formerly DNA Center, posts events to your endpoint as JSON. A slow or failed response can lead to delivery retries, so acknowledge promptly after durably saving the event, then handle ticket creation asynchronously. The event id identifies an event occurrence and can be used to recognize redeliveries; the subscription id identifies the subscription, not an individual event. Name and severity in the body tell the ticket tool what to open and how urgently, so read them from the JSON rather than assuming them. Skipping a subscription id that has been seen before would drop later events from that subscription. Waiting for ticket confirmation before replying holds the connection open on downstream latency. Building the ticket from a fixed template ignores the event name and severity in the payload. Exact field names can vary by event type and release, so validate them against a real subscription. Practical check: replay a saved payload twice and confirm exactly one ticket results.