generated from coulomb/repo-seed
95 lines
4.8 KiB
Markdown
95 lines
4.8 KiB
Markdown
# Roadmap
|
||
|
||
Status: living document
|
||
Updated: 2026-05-17
|
||
|
||
The roadmap sequences `artifact-store` from "no code" to a credible
|
||
production v1 to the longer-horizon platform shape recorded in
|
||
`docs/PLATFORM-AMBITION.md`. Each row is a self-contained workplan with
|
||
its own acceptance criteria; nothing here is a binding milestone.
|
||
|
||
The sequencing principle is **library-first** (ffmpeg-shaped):
|
||
foundational kernels and contracts before any consumer code. The HTTP
|
||
server and CLI exist only after the core library can be exercised
|
||
end-to-end against a local filesystem backend.
|
||
|
||
## Phase 0 — Cleanup (done 2026-05-15)
|
||
|
||
- ADR-0001 through ADR-0006 accepted.
|
||
- Architecture blueprint rewritten to v2.
|
||
- Platform ambition and assembly experiment documented.
|
||
- Workplans re-sequenced.
|
||
|
||
## Phase 1 — Foundation and pilot (v0.1)
|
||
|
||
Goal: ingest a real guide-board run end-to-end, against a local
|
||
filesystem backend, with retention applied and events logged.
|
||
|
||
| ID | Title | Carries existing task IDs | Notes |
|
||
|---|---|---|---|
|
||
| WP-0001 | Foundation: scaffold, core kernels, local FS backend | T001, T002, T003, T008 | All of the library-shaped modules; no HTTP API yet beyond `/health`. |
|
||
| WP-0002 | Ingestion API + manifest surface | T004 | The HTTP API. Builds on WP-0001's library. |
|
||
| WP-0003 | Retention lifecycle | T005 | Retention engine, extensions, holds, deletion eligibility. |
|
||
| WP-0004 | S3-compatible backend (Ceph RGW target) | T006 | Second concrete adapter. |
|
||
| WP-0005 | Guide-board pilot ingestion | T007 | First real producer wired up. |
|
||
|
||
Exit criteria for v0.1: WP-0001 through WP-0005 done; a guide-board
|
||
CMIS run round-trips through artifact-store with manifest, retention,
|
||
and Statehub linkage; backend swappable between local FS and an
|
||
S3-compatible store.
|
||
|
||
## Phase 2 — Production hardening (v0.2 – v0.3)
|
||
|
||
| ID | Title | Notes |
|
||
|---|---|---|
|
||
| WP-0006 | Garbage collection + reference counting | Required by ADR-0001 global dedup. Mark-eligible already lands in WP-0003; this workplan does the byte-deletion pass. |
|
||
| WP-0007 | MinIO compatibility, MaxIO fork assessment, STS credential vending | Splits MinIO/community-fork and NetKingdom credential-vending work out of WP-0004/WP-0005 blockers. |
|
||
| WP-0008 | Resumable / chunked upload implementation | The wire shape lands in WP-0002; this workplan makes the implementation actually streaming. |
|
||
| WP-0009 | Auth, multi-tenancy, quota | OIDC integration; tenant namespacing; per-tenant rate limit and storage quota. |
|
||
| WP-0010 | Observability: metrics, tracing, structured logs | OpenTelemetry SDK; latency / throughput SLOs published. |
|
||
| WP-0011 | Event stream out (CDC) | NATS or Kafka topic of registry events; long-poll `/events` becomes a fallback. |
|
||
| WP-0012 | Signed manifests | Sigstore / cosign integration; signature recorded alongside manifest digest. |
|
||
|
||
Exit criteria for v0.3: a deployment is operatable by humans without
|
||
internal knowledge; SLOs are measurable; access is authenticated;
|
||
artifacts can be signed and verified.
|
||
|
||
## Phase 3 — Platform features (v0.4 – v1.0)
|
||
|
||
| ID | Title | Notes |
|
||
|---|---|---|
|
||
| WP-0013 | OCI artifact `/v2/` endpoint | Implements OCI Distribution Spec on top of the same storage (ADR-0006). |
|
||
| WP-0014 | Content-defined chunking + global dedup at chunk level | FastCDC; chunked storage. Builds toward `docs/ASSEMBLY-EXPERIMENT.md`. |
|
||
| WP-0015 | Rust data plane extraction | Move `dataplane.inproc` to `dataplane.remote` (ADR-0004). |
|
||
| WP-0016 | WASM plugin host | Extension surface for indexers, redactors, scorecard generators. |
|
||
| WP-0017 | Cold-tier adapters | Glacier / Tape / IA classes; restore flow. |
|
||
| WP-0018 | Federation and replication | Signed manifest exchange between artifact-store instances. |
|
||
|
||
Exit criteria for v1.0: artifact-store is embeddable as a library, runs
|
||
as a single-binary CLI, runs as a server, speaks OCI, federates between
|
||
instances, and is fast enough to be a credible commercial substrate.
|
||
|
||
## What this roadmap deliberately does NOT promise
|
||
|
||
- Specific calendar dates. Cadence is set by sessions, not quarters.
|
||
- A UI. UIs are out-of-tree (see `docs/PLATFORM-AMBITION.md`).
|
||
- ML-specific or container-specific features. Use OCI compatibility.
|
||
- A storage backend for every cloud. Adapters are community surface.
|
||
|
||
## How to add a workplan
|
||
|
||
1. Pick the next free `ARTIFACT-STORE-WP-NNNN` number.
|
||
2. Create `workplans/ARTIFACT-STORE-WP-NNNN-<slug>.md` with the
|
||
frontmatter and task block format in `AGENTS.md`.
|
||
3. Cite the ADRs the workplan depends on in its `## Constraints`
|
||
section.
|
||
4. Append a row to the appropriate phase table in this file.
|
||
5. Notify the custodian operator to run
|
||
`make fix-consistency REPO=artifact-store`.
|
||
|
||
## How to retire a workplan
|
||
|
||
1. Set `status: done` in the frontmatter when all tasks are `done`.
|
||
2. Move the file to `workplans/archived/YYMMDD-ARTIFACT-STORE-WP-NNNN-<slug>.md`.
|
||
3. Update this roadmap to reflect the new state.
|