Priority
P1 — High — resolve before broad production adoption or large-scale use.
Problem
A lazy createClient factory can allocate and connect a client that DialCache retains indefinitely, but DialCache has no close/drain lifecycle. GLIDE separately owns script handles requiring dispose(), while the README broadly says DialCache does not close the underlying client.
Evidence:
Open decision
Either make every underlying client unequivocally caller-owned and rename the factory accordingly, or add a cache-owned lifecycle. Confirm before implementation.
Acceptance criteria
- Document who creates, connects, owns, drains, disposes, and closes each resource.
- Define shutdown behavior with operations in flight.
- If a lifecycle method is added, make it idempotent and cover factory failure/retry.
- Ensure GLIDE script disposal and connection ownership cannot be confused.
- Add lifecycle tests for the approved design.
Priority
P1 — High — resolve before broad production adoption or large-scale use.
Problem
A lazy
createClientfactory can allocate and connect a client that DialCache retains indefinitely, but DialCache has no close/drain lifecycle. GLIDE separately owns script handles requiringdispose(), while the README broadly says DialCache does not close the underlying client.Evidence:
Open decision
Either make every underlying client unequivocally caller-owned and rename the factory accordingly, or add a cache-owned lifecycle. Confirm before implementation.
Acceptance criteria