# Parent-Lane Admission Learnings

## 2026-07-14 - Same-Parent Contention

- Finding: concurrent same-process contenders for one durable parent-lane key can repeatedly contend on the lane row while an owner is making progress. That hot-row polling can race token-checked completion release and turn healthy queueing into retryable contention.
- Invariant: a relationship lock required by `ControlledByParent` sharing or cascade behavior remains required. The durable lane remains the cross-process ownership authority; lease, heartbeat, token fencing, and stale takeover are unchanged.
- Change: a reference-counted, context-aware local gate serializes durable acquisition polling for each canonical parent key while leaving different keys independent.
- Budget rule: local gate waiting is separate from the durable acquire deadline. A waiter receives the complete durable lease-wait budget only after local-gate handoff.
- Completion rule: transaction-completion release uses a bounded total cleanup budget. Only a deadline-exceeded, token-checked delete is retried; deterministic failures remain single-attempt.
- Polling rule: the durable poll interval is 100 milliseconds to avoid hot-row spin while preserving the bounded durable wait.

## Regression Coverage

- Same-key acquisition polling is serialized in process, and gates are released after use.
- Local queue waiting does not consume the durable wait budget.
- Different parent keys remain independently acquirable.
- Completion release retries only the allowed transient deadline case and preserves token fencing.
- Default polling stays within the bounded attempt rate.

## Validation Result

- Focused persistence and records tests, focused race coverage, and `git diff --check` passed for the candidate source revision.
- A strict low-, medium-, and high-concurrency validation ladder passed with one-attempt processing, exact business readback, no parent-lane release or stale-owner errors, and no durable lane rows after drain.
- This performance evidence is candidate validation, not environment-release acceptance.
