Unload every module and permanently reject later lifecycle calls.
Load or replace one module. Resolves after all earlier lifecycle calls.
Insert a transactional batch and return channels keyed by module name. Existing names are rejected before any registration starts.
Unload one module after all earlier lifecycle calls.
Unload every module; the container remains reusable.
Create a registry that loads, unloads, and observes named IPC modules.
Mutating lifecycle calls are executed in invocation order through one queue. This makes overlap deterministic across module names as well as for the same name.
dispose()is terminal: calls requested after it reject.