[object Object]

← back to Homesonspec

workers: exp_backoff_restart_delay to cap PG-outage restart storms (DTD verdict A + contrarian guardrails) — TK-10239

033d4dbb65ea06e9f983e9afb6034ce368fef53a · 2026-08-05 08:36:12 -0700 · Steve Abrams

Files touched

Diff

commit 033d4dbb65ea06e9f983e9afb6034ce368fef53a
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Aug 5 08:36:12 2026 -0700

    workers: exp_backoff_restart_delay to cap PG-outage restart storms (DTD verdict A + contrarian guardrails) — TK-10239
---
 ecosystem.config.js | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/ecosystem.config.js b/ecosystem.config.js
index 8ec241cc..e7c4c7b1 100644
--- a/ecosystem.config.js
+++ b/ecosystem.config.js
@@ -25,6 +25,12 @@ module.exports = {
       interpreter: "node",
       interpreter_args: "--env-file=" + __dirname + "/.env --import tsx",
       env: { NODE_ENV: "production" },
+      // This pg-boss worker process.exit(1)s on any Postgres error; pm2's default
+      // instant respawn turned the 2026-08-05 disk-full/PG outage into a ~12,564-restart
+      // storm (TK-10239). exp_backoff spaces crash-restarts (base 100ms, pm2 caps ~15s,
+      // resets once stable) so the next transient PG blip can't tight-loop. A single blip
+      // still recovers in ~base delay since the backoff resets on stability.
+      exp_backoff_restart_delay: 100,
     },
   ],
 };

← 53ff5542 prune: fail-open per-builder (|| true vs pipefail abort) + S  ·  back to Homesonspec  ·  auto-save: 2026-08-05T14:42:56 (1 files) — ops/drain-dr-hort b7da7ff9 →