active: true
derived: false
group: ''
groups:
- DB
header: |
  データベース操作の可用性とフェイルファスト
level: 4.14
links: []
normative: true
priority: high
ref: ''
reviewed: yjIpn6rpCQQ_Nic644LgFdNGSLw92Pz1v_3uVAE1L0o=
text: |
  データベース操作が指定されたタイムアウト時間内に完了しない場合、呼び出し元を無期限にブロックせずにエラーを返し、システムの可用性を維持すること。特にSQLiteの書き込みスレッドがスタックした場合でも、フェイルファストによって制御を戻せること。

  ## 背景・動機

  重い計算処理やLLM呼び出しのキャッシュ層がボトルネックとなり、システム全体の停止を招くことを防ぐため。キャッシュの保存や取得の失敗はログに留め、メインの処理は続行させる「グレースフル・デグラデーション」を保証する。
