Before you launch
Credentials and environments
Key hygiene starts with one key per consumer:- Development, staging, and production senders each hold their own key. Those keys separate credentials, not data, because Reconify has no sandbox or test mode.
- Senders hold
writekeys and readers holdreadkeys. - An
adminkey appears only where one service genuinely does both. - Every secret lives in a secret manager.
- Each key has a recorded owner and a recorded service.
- An exposed key gets rotated immediately.
Event identity
Identity is what makes a retry safe:- The source system supplies a stable
event.id. - A retry reuses the same ID and the same payload.
- Events without IDs count as unsafe to retry.
- No ID is ever reused for different event content.
- The
referencestays identical across the events of one operation.
Batches and concurrency
The contract bounds a batch, and your sender bounds the traffic:- Each batch carries between 1 and 500 events.
- The request body stays at or below 5 MiB, and each event at or below 256 KiB.
- The sender bounds its concurrent requests.
- Every batch result keeps its index through your handling code.
Retry behavior
Each failure has one correct response:- A
503gets retried with exponential backoff and jitter. - Rejected items go back out only after the input is fixed.
- An unchanged
400,401,403,404,409,413, or422never gets retried. - A
duplicateitem result counts as successful delivery. - An
idempotency_conflictcounts as a data-integrity error that needs a human.
Observability
Five signals tell you the sender is healthy:- Every response’s
X-Request-IDreaches your logs. - The counts of
accepted,duplicate, andrejectedresults are tracked. - Events that stay in
receivedorpublishedare tracked. - Rising rejection, conflict, and
503rates raise an alert. - Bearer tokens and raw financial payloads never reach your logs.
Data handling
Evidence is customer data everywhere it travels:- Financial data is redacted from logs and tickets.
- Raw API responses stay out of external AI systems.
- Access to member IDs and organization data is reviewed.
- Your required retention and deletion policy is confirmed before live data flows.
The public API publishes no organization rate limit and makes no
429 or Retry-After
commitment. Your own concurrency bound is the protection, and the SDK backs off on 503.Rotate a key
Rotation happens without downtime when the replacement runs before the revocation.1
Create the replacement
The new key carries the same least-privilege scope and a name that identifies the consuming
service.
2
Deploy the replacement
The service picks it up through your secret manager. Neither key belongs in a command history, a
deployment log, or a source-controlled environment file.
3
Confirm normal traffic
A read key proves itself against a protected
GET route. A write key proves itself in the next
normal production batch and its item results, which avoids creating a synthetic production
event.4
Revoke the old key
Revocation follows once every consumer uses the replacement. A
401 afterwards identifies the
consumer you missed.When processing is slow
Asynchronous evaluation normally finishes in seconds. When an event sits longer, six steps separate a delay from a delivery problem:- The ingestion result for the item reads
acceptedorduplicate. - A read by event ID shows whether it is
received,published,processed, orfailed. - Reconify status shows any active incident.
- An accepted event never gets resent to push processing along.
- The event ID, request ID, route, and UTC timestamp go into your record.
- A state that has not advanced past the flow’s deadline justifies a redacted support packet.
When a provider degrades
Provider evidence and user evidence stay on separate paths:payment.failed event. The
accepted user event stays exactly as it is, because provider checks are separate evidence
rather than authority over it.
The fix runs through the integration: its health reason in the dashboard, then the
environment against the credential, then the replacement credential or corrected status
mapping, then the optional test with a safe provider-side identifier. Later provider
evidence lands on the same operation.
After launch
Four signals tell you whether the integration still behaves:- The ratio of
accepted,duplicate, andrejectedresults. A rising rejection rate usually means a source system changed its contract. - Every
idempotency_conflict, which points at the producer’s identity mapping. - Provider connection health, especially after credential, endpoint, or mapping changes.
- The findings and evidence in the dashboard.