← PracticeIntermediateFailure
Two Transfers, Opposite Directions, Total Stop
Pull up the evidence one item at a time, commit to a diagnosis, and only then see the schedule that actually ran.
What was reported
The ledger service stopped. Not slowed — stopped. It happened at 03:14, and the first symptom was two requests that never returned. Over the next forty minutes every other worker thread was consumed one at a time until the health check timed out and the orchestrator killed the pod. The pod that replaced it ran fine for six hours and then did the same thing.
1void transfer(Account& from, Account& to, Money amount) {2 std::lock_guard<std::mutex> lock_from(from.mtx);3 std::lock_guard<std::mutex> lock_to(to.mtx); // ← second lock, order set by the caller4 if (from.balance < amount) throw InsufficientFunds{};5 from.balance -= amount;6 to.balance += amount;7}Evidence
Nothing here is labelled as relevant. Some of it is not.