Thirty-one events, signed payloads, and a replay button for the afternoon your consumer was down. Subscribe rather than poll — polling a list endpoint on a timer is the fastest route to a 429.
standup.opened, standup.answered, standup.digest_sent, standup.blocker_raised, standup.blocker_clearedsprint.started, sprint.drift_detected, sprint.ticket_stuck, sprint.forecast_updated, sprint.closeddoc.created, doc.commented, doc.decision_recorded, doc.approved, doc.archivedreview.opened, review.sla_breached, review.escalated, review.decidedroadmap.item_added, roadmap.item_at_risk, roadmap.publishedmember.invited, member.removed, integration.connected, integration.sync_failedX-Nexa-Signature, with the timestamp in the signed payloadCompute HMAC SHA-256 over the raw body using your endpoint secret and compare against X-Nexa-Signature in constant time. Reject anything with a timestamp older than five minutes.
Retries run for about 24 hours. After that, replay the missed deliveries by ID — nothing is lost inside the 30-day window.
Per resource, yes. Globally, no. Consumers should be idempotent and key on the event ID.