Building Reliable Integrations
- Request minimum scopes and explicit locations; treat IDs and cursors as opaque.
- Bound pagination and concurrency. Preserve filters with every cursor.
- Retry reads with jitter. Retry writes only with the original idempotency key.
- Treat events as thin change notices, hydrate current resources, and checkpoint after complete processing.
- Reconcile from resource collections after retention expiry, overflow, changed grants, or suspected missed delivery.
Log safe request IDs and resource IDs, never credentials or sensitive bodies. Do not claim exactly-once processing: design an idempotent consumer.