Skip to content

RPC v2 — Roadmap #777

Description

@tamirms

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).

Data type Status Issues
Ledger #695 / #725 / #583 / #584
Events core #756 ✅, query engine #663
TxHash #729, #728
XDR view extractors #764
Ingestion #765

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.

Validation (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.

  • (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):

Step Best Worst When
Serve the API from the v2 stores (#772) 1 2 adapters → wiring → parity; merge to main lands last
v2 events API + v1 support (#774) 1 2 sprint 75 on, in parallel
  • Best (→ ~Sep 15): both land in sprint 75.
  • Worst (→ ~Oct 13): a piece slips into sprint 76.

⚠️ Risks

What could push the date out — largest first:

  1. 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.
  2. 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.
  3. Query serving designDesign: 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.
  4. Team capacity — sprint 75 again runs several big pieces in parallel (Wire the v2 stores into the API handlers and support both v1 and v2 #772's remaining half, Implement the v2 events endpoint and deprecate the existing getEvents #774, Investigate and fix the issues surfaced by the O3 ingestion load test #800) across a small team. If we can't sustain that parallelism, work serializes and the date slips.
  5. 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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status
    In Progress

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions