Tacnode™
← The lineup

The Vanishing Order

The order is in the database. The confirmation page is reading a copy that doesn’t have it yet.

Customer submits the order. The write lands on the primary.

What’s true
exists
The read replica
not found
reads
Decision
Process the second submission?
waiting

Illustrative figures.

Where this shows up

Checkout and paymentsPeople tap Pay again when the confirmation doesn’t show.
Account openingThe status reads “pending” for a while after approval.
Agent action logsAn agent checks whether it already acted, and the log says no.
Idempotency checksThe duplicate check looks for the first request in a copy that doesn’t have it.

Why the read replica gets it wrong

PRIMARYREPLICAorder writtencopy arrives ~3 s laterread: “not found”RETRY → DUPLICATE CHARGEarrives

A replica gets each write a little after the primary does. When traffic is light you’d barely notice. Under load the gap grows, and a read that closely follows a write can miss it. To the app, “this order doesn’t exist” and “this order hasn’t reached the replica” look identical.

By the time the decision ran, its context was outdated. We call that a context gap.

Read the order from where it was written.

TACNODEorder writtenread: foundsame moment, same dataretryRECOGNIZED: SAME ORDERoutcome written back

When orders and holds are written to Tacnode, the very next read sees them. The confirmation page and the duplicate check both read from the place the order went, so there’s no replica to wait on and the second tap is recognized as a retry.

What comes inDecision state is written to Tacnode.
What staysRecords your own systems own stay with them. Tacnode holds the decision state.
What the decision getsThe duplicate check sees the order committed a second ago.
If an engineer asks how

State written to Tacnode is ACID: a read reflects every committed write. Scale-out nodegroups share the same storage, so adding read capacity does not add lag of its own.

Questions to put to your team

  1. Which screens read from a replica straight after a write?
  2. How does your app tell “not found” apart from “not there yet”?
  3. How many duplicate charges did you refund last quarter?

Is your checkout flow telling this lie?

Bring it to a demo, and we’ll trace what it reads and how old that data is by the time it runs.

Book a demo →