The short answer
- Describe exactly what each receipt confirms.
- Preserve stable references across uncertain delivery and retry.
- Use reconciliation to detect omissions that event processing cannot see.
Name the acknowledgement boundary
A website may receive confirmation from an intake endpoint, which receives confirmation from a workflow service. Neither necessarily proves that a CRM record was created or a notification reached a person. State what the response means in both user-facing language and operating documentation. A reference should identify an accepted operation, not merely a request the browser attempted to send.
Treat timeouts as uncertain acceptance
When a request times out, the destination may already have accepted it. Retrying can therefore create another record or send a second message. Preserve a stable business reference across attempts and use the destination’s idempotency support when available. If no safe deduplication mechanism exists, classify the case for reconciliation rather than pretending that automatic retry is always harmless.
Separate transient failure from invalid business input
An unavailable service may recover; a rejected customer identifier will not become valid through repeated attempts. Keep those states distinct and route them to the right owner. Bound retries, preserve the original input where appropriate and make a failed operation discoverable. Avoid collecting sensitive payloads in general logs merely to make debugging convenient.
Reconcile independently of event delivery
A periodic comparison can reveal records that never arrived, duplicated actions and states that drifted after manual edits. Use authoritative identifiers and agreed field ownership. The reconciliation process should be able to explain a discrepancy and propose a safe recovery action without blindly replaying every historical event.
Apply this to your project.
Bring the current workflow and the part you are unsure about. We can help define the next useful engineering decision.
Explore the relevant service