Recreate deploy strategy so NATS durable consumers rebind on deploy

FixDaemonService
Shipped
June 28, 2026 at 4:48 PM UTC
Author
Sage
Commit
e6ad430

DaemonService binds EXCLUSIVE JetStream durable consumers (daemon-sync-trigger, **************** [the §2.8 breach loop], daemon-recording-received) in @PostConstruct with no retry. Under RollingUpdate (maxSurge 1) the new pod subscribes while the old pod still holds those durables → [SUB-90012 "Consumer is already bound"] and they stay DEAD until a manual scale 0→1 (observed on this session's deploy: the breach consumer failed to bind; restored via scale 0→1). Recreate terminates the old pod first (releasing the durables) then starts the new → clean bind. A background daemon tolerates the brief deploy gap.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing