Tags
13 ページ目
Code-Tamer
終了シグナルを受けて即座に落とすと、処理中のリクエストと接続を取り残す。新規を止めて、処理中を待ってから閉じる【Graceful Shutdown】
重い処理が接続を使い切り、大事な処理が動けなくなる。機能ごとに使える枠を分けておく【Bulkhead】
落ちた外部サービスを待ち続けて、無関係な機能まで巻き込んで止まる。失敗が続いたら呼ぶのをやめる【Circuit Breaker】
通知を取りこぼした画面だけ、古い状態のまま戻らない。push と定期取得を併用して必ず追いつかせる【Eventual Consistency】
同時に更新した片方が、気づかないうちに消えている。バージョンを持たせて衝突した方にやり直させる【Optimistic Locking】
boolean フラグを足すたびに、ありえない状態が増えていく。状態を1つの型にまとめて書けなくする【State Machine】
上限は守っているのに、切り替わりの一瞬だけ2倍通ってしまう。窓で区切らず溜まる速さで制限する【Token Bucket】
2つの処理が互いのロックを待ち合って、永久に止まる。ロックを取る順番を全体で1つに揃える【Deadlock】
並列数を上げたら、かえって全体が落ちた。同時に動く数を上限で絞って待たせる【Semaphore】
障害のたびにリトライを連発し、かえって復旧を遅らせる。待ち時間を倍々に伸ばして散らす【Exponential Backoff】
消したはずの検索が裏で動き続け、リソースを握ったまま離さない。キャンセルを最後まで伝える【AbortController】
ボタンを連打すると、同じ処理が二重に走って二重送信になる。await をまたぐ前に実行中フラグを立てて締め出す【Race Condition】
コードテイマー シリーズ目次