Categories
286 ページ目
Tech
リクエストごとにDB接続を作って捨て、p99が350msに。接続を使い回す【Object Pool】
月末のバッチがDB接続を使い切り、サイト全体が30分止まった。区画を分けて守る【Bulkhead】
通常の10倍のリクエストが来て、注文APIが止まった。受け付ける量に上限を付ける【Rate Limiting】
フォールバックが同じDBを叩き、30秒のはずの停止が30分に。別の経路を用意する【Fallback Pattern】
CBもリトライも正常なのに、在庫APIの遅延で注文が30分止まった。上限を決める【Timeout】
10秒の障害が、全台の一斉リトライで60秒の停止に。待ち時間をずらして防ぐ【Retry Pattern】
決済APIの障害でリトライを増やすほど、停止が長引いた。呼び出しを遮断する【Circuit Breaker】
請求サービスが落ちるたびに注文確定が止まる。直接呼ばずに掲示板に貼る【Publish-Subscribe】
DBに書けたのに通知が消え、在庫だけ確保された注文が残る。送る内容もDBに書く【Outbox】
決済のタイムアウトで在庫と配送も止まり、300件を手で戻した。手順ごとに取り消す【Saga】
帳票の種類と出力形式の組み合わせで、CSVだけ分岐を書き忘れた。漏れを型で防ぐ【Double Dispatch】
500行のメソッドは1行直すと無関係な所が壊れ、テストも書けない。段に分ける【Pipeline】
請求金額が1円ずれ、ドル建てに円の手数料が足された。金額と通貨を一緒に持つ【Money Pattern】
渡した料金設定を別チームが書き換え、誤請求が出た。書き換えられない形にする【Immutable Object】
同じ住所なのに等しくない、同じ物件なのに更新後は別物。比べ方を2つに分ける【Entity vs Value Object】
1
…
12
13
14
…
20