発展読了目安 30 分#バッチ#決済#整合性#突き合わせ#インシデント対応
「今月、2 回引き落とされています」— 夜間の更新バッチを、朝に流し直した
月次の更新課金バッチが夜中に止まった。朝、担当者が流し直した。昼には、2 回引き落とされた人と、1 回も引き落とされていないのに使えている人が、両方いた。5 つの判断点で、あなたは何を選びますか。
このケースで問われること
このケースは、外部に書き込むバッチが途中で止まったとき、何が残っていて、どう確かめ、どう直すかを扱います。
バッチを流し直したのは、担当者の善意でした。止まったものを最後まで終わらせようとした。ところが、バッチは誰に課金したかを覚えていませんでした。決済サービスと自社の DB は 1 つのトランザクションにならず、その間で止まった人もいます。
結果として、2 回払った人、払っていないのに使える人、正しく 1 回の人が混ざっています。どれが誰なのかは、まだ誰も分かっていません。
順に 5 つの判断点があります。それぞれで一度自分の答えを決めてから、先へ進んでください。結論を先に読むと、判断の練習になりません。
扱う範囲は ops/batch-jobs・api/dual-write・api/idempotency・ops/slo・ops/incident-response にまたがります。
読み終わりましたか?
読了にすると、これを前提とする記事がロードマップで開放されます。