Agent workflows do not make distributed-systems problems new. Duplicate delivery, partial success, and failed branches still need explicit guarantees and observable outcomes. In a September 16, 2026 essay on DEV Community, Pierre-Laurent Medori describes three familiar mechanisms resurfacing in newer automation work: idempotency, reconciliation, and explicit workflow graphs. His examples are useful reminders—not proof that these mechanisms are novel or that using them makes a system correct.
Why a sequential retry test can miss duplicate effects
Medori’s first example is a webhook handler receiving two copies of the same event at nearly the same time. A test that sends one request, waits for it to finish, and then retries may pass: by the time the second request checks, the first has already recorded the event. Concurrent requests create a different race. Both handlers can check that the event is absent before either writes a record, then both proceed.
As an Amazon Associate I earn from qualifying purchases.
A database uniqueness rule can arbitrate that race. PostgreSQL documents unique constraints on one column or a group of columns, so a system can enforce an event identity such as a provider-and-account-scoped key. Its PostgreSQL 16 index documentation explains that a concurrent insert encountering an uncommitted conflicting row waits for the other transaction and checks again. That database-level enforcement is stronger than an application-only “look, then insert” check. PostgreSQL: Constraints and PostgreSQL 16: Index Uniqueness Checks.
The uniqueness rule should gate the local business writes, and the deduplication record should commit in the same transaction as those writes. If the system commits “processed” first and crashes before doing the work, a later delivery may be discarded even though the effect never occurred. If the business writes happen without the protected deduplication record, another delivery can repeat them. A simultaneous-duplicate test should therefore check the resulting database effects, not merely whether both requests returned successfully.
#1 Best Overall
This protects a local transaction boundary; it does not provide global exactly-once execution. Email, payments, and other external effects are separate boundaries. Medori suggests recording outgoing intent in the same local transaction with a transactional outbox, then delivering it asynchronously. Delivery may still happen more than once. A stable operation key helps only if the receiving service supports an idempotency contract, and the key’s retention window matters; Medori’s essay does not establish the contract or retention behavior of any particular provider.
For stochastic agent output, the event or operation identity should be chosen before a run and carried through it, rather than inferred from generated text. In the DEV discussion, a reader makes this point and Medori agrees in a reply. Generated content can vary even when the intended operation is the same.
How to detect partial success with reconciliation
Medori’s second case is a pipeline where a webhook reports successful delivery, but a downstream consumer silently drops records because of a schema mismatch. A delivery acknowledgement confirms something about delivery; it does not, by itself, prove that the intended business result was persisted.
Rank #2
His proposed backstop is an independent, read-only reconciler that compares durable expectations with persisted outcomes. Independence matters: if the checker follows the same flawed path as the writer, it may share the same blind spot. Reconciliation should look beyond aggregate counts. Equal totals can hide a missing object offset by a duplicate, while matching identities can still conceal an empty or incomplete object. Check relevant content invariants as well as which objects exist.
For a fixed batch of unique messages whose processing has finished, Medori gives the accounting identity inbound = stored + dead-lettered. If processing is still underway, include pending messages too. Compare like with like: delivery attempts cannot be reconciled directly against unique event identities. These are operational accounting rules from the essay, not statistical findings.
A rejected message in a dead-letter queue is recoverable only if someone owns a recovery path. Recording the rejection makes it visible; it does not repair the missing result. Reconciliation is a detector, not an automatic guarantee of correction.
Rank #3
What an agent workflow graph must say about failures
Medori uses “graph engineering” to describe an inspectable representation of workflow steps, dependencies, conditions, parallel work, joins, and allowed transitions when a branch fails. The essential question is not only what the successful route looks like, but what happens when it does not happen.
Define the behavior at a join
Suppose a workflow fans out to several review branches and one times out. Does the join expose a missing result, retry that branch, or mark the whole review incomplete? A diagram that records only the happy path leaves those control decisions unspecified.
Keep model choices inside an execution contract
A graph can make state transitions and failure handling easier to inspect without making model output deterministic. If a model can choose the next step, that choice still needs to fit an execution contract: which transitions are allowed, what state is required, and how missing or failed work affects the outcome. Otherwise, the diagram describes an expected route while actual control flow lives elsewhere.
Rank #4
What these rediscoveries do—and do not—guarantee
The three examples point to different boundaries: concurrent duplicate delivery versus sequential retry; local transaction versus external side effect; delivery acknowledgement versus persisted outcome; and happy-path diagrams versus explicit branch-failure behavior. They are design distinctions, not a ranking of implementations or evidence that agent systems have made old mechanisms obsolete.
Medori puts the limitation plainly: “A transaction can prevent a duplicate write; it cannot tell you the content deserved to be written. A graph can make a decision inspectable, not correct.” The database documentation supports the mechanics of uniqueness checks; the remaining examples and recommendations are his account and perspective, not a systematic survey or benchmark. His earlier line captures the operational risk: “Every line of code behaves exactly as written, and the system does the wrong thing twice.”
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →For teams modernizing integrations or agent pipelines, the practical questions are concrete: can simultaneous copies produce repeated effects, can persisted results be checked independently against durable expectations, and can every failed or missing branch be accounted for at the join?
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




