You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The work to ship an MVP release of RPC v2 falls under the categories below. Each sprint, we make progress by completing tasks across any number of them.
Not all work is broken into issues yet — some is design-gated. We settle the design first, then create the implementation issues from it.
DB layer — ✅ · P0
When complete: any ledger, transaction, or event from anywhere in history can be written and read back — recent data in a live, writable database, older data in immutable files written once and never changed. These are the storage read/write primitives; wiring them to the JSON-RPC endpoints comes later (Query serving).
When complete: one daemon mode that catches up on startup (backfilling history as a subroutine), then ingests live ledgers from captive core — freezing completed chunks from the live database into immutable files, and pruning data once it ages out of the retention window.
When complete: the service answers all read endpoints from the v2 stores — routing across hot + cold — through handlers shared with v1, which keeps its SQLite path through a deprecation window, with the events API on its v2 form.
Query serving across hot + cold stores under concurrent ingestion/lifecycle — ✅
When complete: retention can extend beyond local NVMe by spilling older immutable files to EBS, served at higher latency.
(no issue yet)
📅 MVP target
Best ~Sep 15 2026 (end of sprint 75) · worst ~Oct 13 2026 (end of sprint 76) for the MVP: query serving complete — 4-week sprints. Estimates, not commitments.
Where we are. The query router is implemented (#865). What remains for MVP is the back half of serving the API from the v2 stores (#772: the store adapters, handler wiring, and the parity suite; its foundations are landed) and the v2 events API (#774: cursor + codec landed).
Remaining critical path (from sprint 75 — the two remaining pieces run in parallel under different owners; with the router landed, #772 is no longer gated on anything):
Live ingestion design — the most complex piece to design, and the sprint-73 focus (design + implementation in the same sprint). If the design runs long, the whole unified ingestion workflow — and the timeline — slips with it.
Automated, repeatable benchmarking — running benchmarks in an automated, repeatable way to detect regressions is something we've never built. The approach is unproven, so its effort is the hardest to estimate.
Emergent work — unplanned interrupts (e.g. HackerOne reports against RPC or Horizon) preempt sprint work on short notice. They are unpredictable in timing and size, and they land on the same small team that holds the critical path, so a bad one stalls the sprint.
RPC v2 — Roadmap
Living roadmap for shipping Stellar RPC v2. At a minimum, it's refreshed each sprint to set the next sprint's targets.
Status: ✅ done · 🟡 in progress · ⬜ not started.
Priority: P0 must-ship for MVP · P1 important, not MVP-blocking · P2 deferrable · P3 furthest out.
🎯 Sprint 75 — target
The work to ship an MVP release of RPC v2 falls under the categories below. Each sprint, we make progress by completing tasks across any number of them.
Not all work is broken into issues yet — some is design-gated. We settle the design first, then create the implementation issues from it.
DB layer — ✅ · P0
When complete: any ledger, transaction, or event from anywhere in history can be written and read back — recent data in a live, writable database, older data in immutable files written once and never changed. These are the storage read/write primitives; wiring them to the JSON-RPC endpoints comes later (Query serving).
Unified ingestion workflow — ✅ · P0
When complete: one daemon mode that catches up on startup (backfilling history as a subroutine), then ingests live ledgers from captive core — freezing completed chunks from the live database into immutable files, and pruning data once it ages out of the retention window.
Query serving — 🟡 · P0
When complete: the service answers all read endpoints from the v2 stores — routing across hot + cold — through handlers shared with v1, which keeps its SQLite path through a deprecation window, with the events API on its v2 form.
feature/full-historymerged to main and retiredgetEventsAPI #426Validation (trust-min) — ⬜ · P2
When complete: ingested data is verified correct without trusting the data-lake source.
Benchmarks — 🟡
When complete: perf is measured consistently and regressions are caught.
EBS / historical tier — ⬜ · P3
When complete: retention can extend beyond local NVMe by spilling older immutable files to EBS, served at higher latency.
📅 MVP target
Best ~Sep 15 2026 (end of sprint 75) · worst ~Oct 13 2026 (end of sprint 76) for the MVP: query serving complete — 4-week sprints. Estimates, not commitments.
Where we are. The query router is implemented (#865). What remains for MVP is the back half of serving the API from the v2 stores (#772: the store adapters, handler wiring, and the parity suite; its foundations are landed) and the v2 events API (#774: cursor + codec landed).
Remaining critical path (from sprint 75 — the two remaining pieces run in parallel under different owners; with the router landed, #772 is no longer gated on anything):
What could push the date out — largest first:
Live ingestion design — the most complex piece to design, and the sprint-73 focus (design + implementation in the same sprint). If the design runs long, the whole unified ingestion workflow — and the timeline — slips with it.Automated, repeatable benchmarking — running benchmarks in an automated, repeatable way to detect regressions is something we've never built. The approach is unproven, so its effort is the hardest to estimate.Query serving design — Design: concurrent query serving across all data types #770 is also a sprint-73 item and isn't settled yet; query-serving implementation is gated on it.