Skip to content

Expose DurableServer callbacks to release upgrades - #27

Open
jeregrine wants to merge 2 commits into
mainfrom
advertise-relup-callback-modules
Open

jeregrine wants to merge 2 commits into
mainfrom
advertise-relup-callback-modules

Conversation

@jeregrine

@jeregrine jeregrine commented Sep 4, 2026

Copy link
Copy Markdown
Member

Problem

OTP's release handler discovers processes to suspend and pass through code_change/3 from each supervisor child specification's modules list. DurableServer children currently advertise only the generic DurableServer wrapper, so a release upgrade that changes a user callback module cannot associate that module with its running durable processes.

That leaves callback-owned runtime state outside the normal relup migration path.

Fix

Advertise both DurableServer and the user callback module in each durable child's modules list. The wrapper remains the process callback and continues delegating code_change/3 to the user module.

Update graceful shutdown child selection to recognize DurableServer by membership rather than requiring the old singleton module list.

Supporting information

This adds release-upgrade metadata only. It does not change discovery, restart eligibility, persistence, or shutdown status semantics.

Companion Sprites handoff change: https://github.com/superfly/sprites-api/pull/995

@jeregrine
jeregrine force-pushed the advertise-relup-callback-modules branch from 435b7f7 to a0cdffa Compare September 15, 2026 14:48
@jeregrine
jeregrine force-pushed the advertise-relup-callback-modules branch from a0cdffa to 7f8b9a2 Compare September 15, 2026 15:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant