Skip to content

Building Reliable Integrations

  1. Request minimum scopes and explicit locations; treat IDs and cursors as opaque.
  2. Bound pagination and concurrency. Preserve filters with every cursor.
  3. Retry reads with jitter. Retry writes only with the original idempotency key.
  4. Treat events as thin change notices, hydrate current resources, and checkpoint after complete processing.
  5. 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.