Overview
Direct replaces the single central endpoint of a traditional RPC provider with two things working together: a peer-to-peer network of RPC nodes, and a client that connects your app to it. This page explains what that means and the features you get because of it.
The traditional model
Most RPC providers put one endpoint — a load balancer — in front of their nodes. Every request goes through that single point.
┌──────────┐ ┌───────────────┐ ┌──────┐
│ Your app │ ───> │ Load balancer │ ───> │ Node │
└──────────┘ └───────────────┘ └──────┘
one endpoint —
one point of failureIf that endpoint is slow, far away, or down, every request feels it. Throughput is capped by that one path, and you’re trusting a single provider for every answer.
The Direct model
Direct gives your app a client that connects straight to many nodes at once, with no central endpoint in the middle.
┌──────────────────┐ ┌──────┐
│ Your app │ ──┬───> │ Node │
│ + Direct client │ ├───> │ Node │
└──────────────────┘ ├───> │ Node │
└───> │ Node │
└──────┘
direct connections to many nearby nodes —
no central endpoint, no single point of failureBecause requests spread across a mesh of nodes, there’s no single point of failure, throughput scales with the network, and the node closest to you answers fastest.
Direct works at both ends of every request: the client sits close to your app, and the network sits close to the RPC nodes. Local-first architecture follows a single request through both. The next two sections cover each.
The network
Direct routes your requests across a peer-to-peer network of RPC nodes instead of one central endpoint.
- Made up of independent node runners, third-party RPC providers, and Direct’s own infrastructure.
- Direct pays providers per request and routes each one to the best node by performance, reliability, price, and region.
- The network is continuously monitored, so requests always reach healthy, fast, well-priced nodes.
- No central controller sits in the middle — so there’s no single point of failure.
→ The Network covers how this works in detail, including wholesale access.
The client
The client connects your app to the network and exposes everything as plain JSON-RPC, so your existing code works unchanged.
- Drop-in— plain JSON-RPC, two lines in the browser or a local endpoint on your backend.
- Two clients— a Browser SDK for frontend apps and a CLI client for backends.
- Resilient— requests spread across many nodes for automatic failover and high throughput.
- Instant reads— local-first syncing serves popular data without a round trip.
- Optional data integrity— quorum checks across multiple providers when you need them.
→ Using Direct covers both clients and their features.
Read next
- Local-first architecture — what happens on a single request, step by step.
- Getting started — the shortest path to your first request.