背景
アーキテクチャレビュー(2026-07-02)の所見 F-2 / F-3。公開デプロイ(EC2 + systemd / ALB 等)の最低要件が揃っていない。
内容
- graceful shutdown: 現状 SIGTERM / SIGINT /
server.close() のハンドラが一切無い(server/receive.js に 0 件)。再起動時に in-flight リクエストと sqlite 書き込みが中断され得る。SIGTERM → server.close() + store.close() の順で畳む
- ヘルスチェック endpoint:
GET /healthz(store 疎通込み)を追加。ALB / 監視の liveness を張れるようにする
- 起動時の実効設定サマリ: 現状の起動ログは Slack / GitHub の有効無効のみ(server/receive.js:241-248)。設定ミス(0 / 負 / 小数)は
positiveIntSetting が黙ってデフォルトに fallback し、どの値が無視されたか警告も出ない。起動時に「実効値サマリ + 無視した設定の警告」を 1 ブロック出力する(トークン等の secret 値は出さない)
受け入れ条件
- systemd 再起動で in-flight リクエストが正常完了する
/healthz が 200 / 異常時に非 200 を返す(認証・rate limit の適用方針も決める)
- 不正な設定値を与えると起動ログに警告が出る
サイズ: S。
背景
アーキテクチャレビュー(2026-07-02)の所見 F-2 / F-3。公開デプロイ(EC2 + systemd / ALB 等)の最低要件が揃っていない。
内容
server.close()のハンドラが一切無い(server/receive.js に 0 件)。再起動時に in-flight リクエストと sqlite 書き込みが中断され得る。SIGTERM →server.close()+store.close()の順で畳むGET /healthz(store 疎通込み)を追加。ALB / 監視の liveness を張れるようにするpositiveIntSettingが黙ってデフォルトに fallback し、どの値が無視されたか警告も出ない。起動時に「実効値サマリ + 無視した設定の警告」を 1 ブロック出力する(トークン等の secret 値は出さない)受け入れ条件
/healthzが 200 / 異常時に非 200 を返す(認証・rate limit の適用方針も決める)サイズ: S。