設計って、
「正しい技術を選ぶ」ことより、
どの複雑性に予算を使うかを
決めることなのかも…?
…という話でした。ご意見ください!
同期 : log を user_id で grep → 終わり 非同期 : どの request だった? ↓ どの job だった?(job_id は紐付いてる?) ↓ どの worker が拾った? ↓ retry されてる? dead letter?
| 登場人物が3種類以上増える?worker, queue, Redis… | +15 |
| 新メンバーへの説明が30分で終わらない? | +15 |
| 削除するとき5ファイル以上消す? | +15 |
| 運用 runbook を新規に書く必要がある? | +15 |
| 冪等性の実装責任がコード側に乗る? | +10 |
| 1仕様変更で触るファイルが3つ以上? | +10 |
| レビューできる人がチームに2人以下? | +10 |
| 後から戻すのが難しい選択? | +10 |
| 失敗の影響が金銭・SLAに直結する? | +25 |
| 処理時間が同期では絶対に間に合わない?UIブロック1分超など | +20 |
| 複数チームから呼ばれる共通基盤? | +15 |
| リアルタイム性が業務要件として強い? | +15 |
| 1年で5〜10倍に伸びる予測がある? | +10 |
| 失敗時の手動リカバリが現実的でない規模? | +10 |
| 既にシンプル構成で事故が出ている? | +5 |