// Fintech × Real-Time Ops
Deploy safety and incident response for a live market feed
Keeping a market feed correct through its own rollouts: the replica count nobody wrote down, the overlap a start-first deploy is supposed to have, and what a doubled consumer does quietly.
// The problem
Why this is hard
Most of what goes wrong on a feed goes wrong on the way past, not while it is running. A rollout that overlaps the old process and the new one is doing exactly what it was configured to do, and for that window every consumer written to be the only one of itself is two of itself. Nothing about that looks like an incident: no error, no restart loop, no failed health check — just a stretch of minutes where each message is handled twice by design nobody wrote down. The constraint that makes it safe is a replica count sitting in a deploy file, and it is usually the one number in the system that has no comment, no test and no owner.
// How we do it
The approach for this fit
Write down the replica count you are already depending on
Every consumer that assumes it is alone — a scheduler, a sequence counter, a dedupe window held in memory — is enforcing a maximum, not a minimum, and enforcing it by accident. We find them, then put the constraint where the next person changing capacity will see it rather than in someone's memory.
A start-first rollout is an overlap, and that is what it is for
The instinct after the first duplicate is to remove the overlap, which trades correctness for a gap in coverage. The better answer is to make the window survivable: a consumer that tolerates seeing a message twice can be deployed the way availability wants, and one that cannot has quietly capped your uptime at whatever a single instance gives you.
Give the second delivery somewhere to appear
A doubled side effect is not a failure signal — it is a successful operation that happened twice, and it enters every counter as ordinary volume. What separates it from load is identity: keys carried through the write path, so a repeat is a number you can watch across a deploy rather than something a customer reports afterwards.
Rehearse the rollout against the consumer, not the endpoint
A health check answers whether the process started. It says nothing about whether the thing that process is the only copy of survived being two copies for ninety seconds. The exercise worth running before a release is the overlap itself, on a replica of the topology, with the duplicates counted.
// Proof
Measured on our own hardware
handled twice, or by nobody
Events a single-instance consumer handled twice during one start-first rollout — and, with the policy switched to stop-first, the same count handled by no instance at all. It is a swap, not a fix. Five trials per arm, the replacement ready 250 ms after it starts on a 20 ms feed, one process on loopback with no containers and no orchestrator, so a real image pull and health check only make the overlap longer.
doubled, 50 ms to 1 s readiness
Events handled twice as the replacement's readiness was swept from 50 ms to one second: 2, 5, 12, 25 and 50, against the 2.5, 5, 12.5, 25 and 50 that readiness over a 20 ms publish interval predicts. A faster health check shrinks the count in proportion, and only no overlap at all takes it to zero — which is the coverage a start-first rollout is buying.
Not a client outcome and not a vendor figure — numbers we took, on hardware we can name, with the method to be published alongside them.
// FAQ
Common questions
// Part of
Where this sits
// Let's build
Building Deploy safety and incident response for a live market feed?
Tell us where you are. We reply within a day with a concrete next step.