Current section
Files
Jump to
Current section
Files
docs/future-roadmap.md
# Docket Future Roadmap
Items are exploratory, not release commitments. Current behavior is defined by
the code, module documentation, and focused architecture and operations guides.
## Future work
### Scheduling and multi-tenancy
#### Preferred tenant share, borrowing, and reclaim
- **Status:** exploring
- **Horizon:** later
- **Area:** PostgreSQL TenantFair admission
**Summary:** Separate a tenant's preferred concurrency from its hard maximum.
Allow tenants to borrow otherwise-idle capacity while giving newly backlogged
tenants priority as capacity becomes available again.
**Why:** A single hard maximum forces operators to choose between conservative
tenant isolation and high utilization. Preferred share plus borrowing could
use quiet capacity without discarding meaningful tenant entitlements.
**Possible direction:**
- Keep `preferred_active` and `max_active` independent.
- Treat preferred capacity as a steady-state target rather than a permanently
reserved or preemptible slot count.
- Admit entitled work before borrowed work.
- Allow borrowing only up to the borrower's exact hard cap.
- Return capacity non-preemptively as active borrowed runs release admission.
- Describe reclaim using qualifying admission and release opportunities unless
a wall-clock bound can be proven honestly.
- Add aggregate observations for entitled, borrowed, and reclaim-wait states.
**Open questions:**
- What capacity domain should preferred shares divide?
- How should fleet-wide demand interact with per-tenant sticky admission when
every vehicle slot is occupied?
- What is the smallest useful reclaim promise for operators?
- How should class ordering remain bounded under contention?
- Which administration and migration changes are justified by real usage?
**Dependencies:** Preserve exact per-owner caps, non-preemptive cap debt,
bounded candidate discovery, rollback neutrality, and the existing
ClaimPolicy/RunStore boundary.
#### Active-set weighted tenant service
- **Status:** idea
- **Horizon:** later
- **Area:** PostgreSQL TenantFair scheduling and service accounting
**Summary:** Distribute service proportionally among currently active tenants
using configured integer weights.
**Why:** Equal rotation opportunities do not express differentiated service
tiers and do not account for tenants whose work consumes different amounts of
concurrency or processing time.
**Possible direction:**
- Maintain normalized service tags for the active tenant set.
- Introduce a system virtual-time floor and clamp returning tenants to it so
idle tenants cannot accumulate stale credit.
- Derive service asynchronously from claim and completion evidence.
- Keep lifecycle commit, release, refresh, and abandon paths free of new
opposite-order partition locks.
- Consider concurrency share and processing-time share as complementary
signals.
- Define accounting staleness, reconciliation, and long-run skew measurements.
**Open questions:**
- What is the authoritative service unit?
- How is the active set defined across joins, leaves, waits, and policy
changes?
- Should weights influence admission, observation, or both?
- What tolerance and observation window make a proportionality claim useful?
- How should missing, duplicated, delayed, or replayed accounting evidence be
reconciled?
**Dependencies:** Settle the normalized-service and entitlement model first.
Asynchronous accounting must remain independent of exact-cap correctness and
must not introduce partition/run lock cycles.
## Related focused roadmaps
- [v0.1.1 composability and ergonomics roadmap](roadmap-v0.1.1.md) tracks work
around graph composition, authoring, and detached execution.