Skip to content

Expose DurableServer callbacks to release upgrades - #27

Open
jeregrine wants to merge 1 commit into
mainfrom
advertise-relup-callback-modules
Open

Expose DurableServer callbacks to release upgrades#27
jeregrine wants to merge 1 commit 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

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