You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Exploration may begin earlier. Production confirmation waits for the #500 gates.
Purpose
Reduce registration and deregistration time, allocation calls, copied state, and retained storage without moving steady dispatch or weakening stale-handle safety.
Current representation
MessageRegistrationToken already has a slot array, doubly linked live list, and free list. This issue must not recreate that mechanism under a new name.
Concrete attributed candidates include:
one process-wide atomic ID increment per staged registration;
large copied MessageBusRegistration and typed deregistration state;
Dictionary plus List ordered spill storage with a dictionary lookup during ordered iteration and O(n) arbitrary list removal.
Owned experiments
Attribute every registration/deregistration allocation and copied byte by owner.
Measure direct bus, direct handler, token stage/active, remove, and disable at 1/16/256/1,000 live registrations.
Test owner-local generational handles: one token-owner identity plus slot and generation, with a burned slot on wrap.
Keep the internal handle at or below the current 16 bytes and preserve the public factory path where process-wide uniqueness is required.
Test a bus-owned generational registration-record arena with a small opaque built-in handle while preserving custom IMessageBus ExternalId/ExternalState behavior.
Test a compact ordered spill store: sparse hash index to append-ordered dense records, scrubbed tombstones, and transactional density-based compaction.
Apply the ordered-store experiment to HandlerActionCache spill first. Extend it to bus handler/priority stores only after that mechanism wins.
Test indexed or intrusive removal separately from storage layout.
Test bounded slabs or pools only for an attributed allocation owner.
Prototype batch register, enable, disable, and deregister transactions that validate, invalidate, and roll back once.
Measure delegate equality/hash cost for static, instance, capturing, equal, and duplicate delegates.
Part of #497 and the SubUnsub outcome in #414.
Inputs and dependencies
Exploration may begin earlier. Production confirmation waits for the #500 gates.
Purpose
Reduce registration and deregistration time, allocation calls, copied state, and retained storage without moving steady dispatch or weakening stale-handle safety.
Current representation
MessageRegistrationToken already has a slot array, doubly linked live list, and free list. This issue must not recreate that mechanism under a new name.
Concrete attributed candidates include:
Owned experiments
Do not repeat object-only token recycling or rejected inline-plus-ordinary-spill layouts without a materially different mechanism.
RED and correctness
Acceptance
Route maps and middleware are out of scope.