Provide bounded, deterministic storage semantics for leases, endpoint observations, attempts, replay state, and expiry without introducing durable gameplay state.
Scope
Define store interfaces and atomic transitions for listings, leases, presence, join attempts, endpoint binding, replay/consumption, and revocation.
Implement the v1 single-process in-memory store with injectable monotonic/wall clocks and deterministic cleanup.
Define restart semantics: ephemeral state disappears, hosts re-register, and clients receive typed failures.
Bound every collection and queue with explicit overload behavior.
Define concurrency, idempotency, cancellation, clock-skew, drain, and partial-operation semantics.
Keep the abstraction suitable for a Redis-style TTL/CAS implementation if #18 later requires multiple instances.
No expired/revoked record is observable through another path.
Store exhaustion sheds new work predictably without corrupting existing state.
Restart and graceful-drain behavior are documented and tested.
No database is required for the single-active MVP.
New joins fail closed whenever atomic authorization cannot be guaranteed.
Parent: #1
Depends on: #2, #3, #4
## Outcome
Provide bounded, deterministic storage semantics for leases, endpoint observations, attempts, replay state, and expiry without introducing durable gameplay state.
## Scope
- Define store interfaces and atomic transitions for listings, leases, presence, join attempts, endpoint binding, replay/consumption, and revocation.
- Implement the v1 single-process in-memory store with injectable monotonic/wall clocks and deterministic cleanup.
- Define restart semantics: ephemeral state disappears, hosts re-register, and clients receive typed failures.
- Bound every collection and queue with explicit overload behavior.
- Define concurrency, idempotency, cancellation, clock-skew, drain, and partial-operation semantics.
- Keep the abstraction suitable for a Redis-style TTL/CAS implementation if #18 later requires multiple instances.
## Acceptance criteria
- Deterministic tests cover renew/delete races, expiry, duplicate requests, concurrent endpoint binding, replay consumption, clock movement, and cancellation.
- No expired/revoked record is observable through another path.
- Store exhaustion sheds new work predictably without corrupting existing state.
- Restart and graceful-drain behavior are documented and tested.
- No database is required for the single-active MVP.
- New joins fail closed whenever atomic authorization cannot be guaranteed.
Starting implementation on codex/issue-6-atomic-state, stacked on the verified #2–#5 foundation. I’ll define engine-agnostic atomic store contracts and a bounded single-process implementation with deterministic clocks/cleanup, fail-closed authorization, explicit overload/drain/restart semantics, and race/idempotency/cancellation/clock-movement tests.
Starting implementation on `codex/issue-6-atomic-state`, stacked on the verified #2–#5 foundation. I’ll define engine-agnostic atomic store contracts and a bounded single-process implementation with deterministic clocks/cleanup, fail-closed authorization, explicit overload/drain/restart semantics, and race/idempotency/cancellation/clock-movement tests.
Kyuubi
self-assigned this 2026-07-16 05:15:15 +02:00
independent ceilings for listings, presence, attempts, replay, revocation, and idempotency plus atomic policy-provided publisher/tenant quotas with no partial insertion or eviction;
atomic cascade cleanup for expiry/revocation, empty-state restart semantics, a bounded drain window, readiness/shutdown integration, and ADR 0004 documenting concurrency, cancellation, clock movement, overload, partial-operation, restart, and future Redis CAS/TTL requirements.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent: #1
Depends on: #2, #3, #4
Outcome
Provide bounded, deterministic storage semantics for leases, endpoint observations, attempts, replay state, and expiry without introducing durable gameplay state.
Scope
Acceptance criteria
Starting implementation on
codex/issue-6-atomic-state, stacked on the verified #2–#5 foundation. I’ll define engine-agnostic atomic store contracts and a bounded single-process implementation with deterministic clocks/cleanup, fail-closed authorization, explicit overload/drain/restart semantics, and race/idempotency/cancellation/clock-movement tests.Implemented and pushed on
codex/issue-6-atomic-stateat02ca502.Delivered:
ServiceUnavailable,Draining,CapacityExceeded,Conflict,Expired,ReplayRejected, and tenant-hiddenNotFoundoutcomes;Verification:
/health/readyreturned 200 with the state-store readiness gate active;The issue remains open until the stacked branch is landed.