Independent checks run concurrently
Checks that don't depend on each other run at the same time. Fraud scoring and cryptogram verification have no data dependencies between them, so running them in parallel makes the critical path equal to the slowest single check rather than the sum.
Parallelism reshapes the tail as well as the median. Jeffrey Dean and Luiz André Barroso showed in The Tail at Scale that when a request fans out across many backends, the slowest component dominates the response time, which is why they proposed hedged and tied requests as mitigations.
Fan-out only helps if the combining logic is predictable. Define a fixed precedence and a hard deadline that cancels outstanding work. The subtle failure is a cancelled fraud call that already incremented a velocity counter, which leaves your state ahead of your decision. Cancellation has to be safe at every point where a check writes anything.
Horizontal scaling preserves consistency
Authorization scales horizontally when the decision service holds no session state. Any node handles any request, and connection pools to the switch and HSM stay persistent rather than reconnecting.
Partitioning is what keeps correctness intact under that model. EGS describes modern platforms scaling through stateless services behind load balancers, with microservices isolating authorization from ledger and settlement work while idempotency keys prevent double charges.
The concurrency problem is specific and worth naming. Two authorizations against the same account arriving milliseconds apart on different nodes can both read the same available balance and both place a hold. Partitioning by account identifier routes them to the same node and serializes them naturally, which is cheaper than distributed locking and faster than optimistic retry. Pair that with a unique constraint on the retrieval reference number so a network retry of the same message returns the stored response instead of creating a second hold.
Failures require explicit payment outcomes
When the issuer never responds or responds after the acquirer stopped waiting, the system is in an ambiguous state where the authorization exists on one side of the wire and not the other. Recovery logic has to resolve that ambiguity explicitly.
Card networks separate these outcomes at the code level. Response code 91 means the issuer is unavailable and the external ledger couldn't be reached, while code 96 signals a system malfunction or a breach of scheme response time limits. Visa converts both to N0 when it forces single-request Stand-In.
Treating ambiguity as a decline is the mistake that costs money twice. You lose the sale, and you leave a hold sitting on the account with no matching clearing record, which surfaces as a customer complaint and a reconciliation break. Build the uncertain state into your transaction model as a real status with its own resolution path.
Timeouts can trigger stand-in decisions
Stand-In lets someone else decide when you can't. The card network or issuer processor responds on the issuer's behalf using parameters the issuer configured in advance as it evaluates card status and spending ceilings without access to the live balance.
The two flavors differ sharply in risk. Basic Stand-In declines everything when no response arrives within the threshold, which protects integrity and avoids scheme fines, while Enhanced Stand-In approves transactions that meet the criteria you defined and declines the rest.
Because Stand-In runs blind to your ledger, the parameters have to assume the worst plausible account state. Set accumulative limits low enough that a full day of Stand-In on your largest portfolio produces a loss you'd accept rather than a loss you'd escalate. And log every Stand-In advice the network sends when you come back online, because those transactions are already authorized and your balances are wrong until you post them.
Reversals repair uncertain authorizations
A reversal cancels an authorization. ISO 8583 defines an acquirer reversal request as message type 0400, sent when the acquirer needs to undo a transaction the issuer already approved, most commonly because the response never reached the terminal.
Three mechanisms have to work together for this to hold up:
-
A stable transaction identifier carried on the original request and the reversal, so both can be matched to one logical transaction.
-
Idempotent handling keyed on that identifier, so a repeated reversal releases the hold once and returns the same result on every subsequent attempt.
-
A late-response rule that discards or reverses an approval arriving after the acquirer has already timed out and reversed.
Without a reversal, the hold sits until the network's own expiry runs out, which can take days. Your customer sees pending funds for a purchase that never happened, and your support queue absorbs the difference. That's why the reversal path deserves the same latency and reliability engineering as the authorization path itself.
Tail latency reveals system health
Averages hide the failures that matter. Measure each hop separately from terminal to issuer, then track p95 and p99 on every one. A 40ms mean with a 900ms p99 means one transaction in a hundred is a customer complaint.
Instrument correctness alongside speed. Track timeout rate and approval rate broken out by decline code so you can see when a latency regression starts converting into declines. The observability set for idempotent payment APIs includes duplicate request count and in-progress conflict count alongside gateway timeout rate, which is the right instinct: correctness metrics and latency metrics belong on the same dashboard.
Load testing has to reproduce peak concurrency and failure modes together. A system that holds p99 at three times normal volume can still collapse when a single HSM node drops out at that volume, because the queue that was invisible at p99 becomes the whole story.
EGS can modernize authorization infrastructure
If your authorization path is losing time to synchronous dependencies you can't fully account for, the fix starts with measuring each hop and rebuilding the ones that don't justify their cost. That work is easier with a team that has already built the components.
Energize Global Services (EGS) is a technology company founded in 2007 with offices in Boston and Yerevan that works on banking systems and POS terminal solutions. The engineering work spans payment switches and custom banking infrastructure built for low-latency transaction processing.
Book a call with the EGS engineering team and bring your current latency numbers and your timeout rate. That's the conversation that produces a concrete plan rather than a general assessment.