Strategy selection
Select a strategy in the request URL:
The chain must be configured in the profile. WebSocket routes take the same
segments under
/ws/rpc.
The application default can be set to :priority in an Elixir configuration:
/rpc/priority/:chain
strategy route. Strategy names in metadata use underscores, such as load_balanced.
Load balanced
Core starts from a randomized channel order. For replay-safe unary calls, it tries distinct physical provider instances before alternate transports of an already considered instance within each health tier. HTTP and WebSocket routes to the same instance do not count as two physical providers. Distinct instances do not establish independent operators or account quotas. Health tiers and explicit recovered-head preference take precedence. A healthy alternate transport still precedes a different provider in a lower tier. The lazy cursor bounds healthy-sibling deferral by its remaining candidate limit; live admission still applies when a deferred channel is selected. Alternate transports remain available, but trying another instance first can delay a working alternate on the previous instance. Unsafe and unknown methods retain their shuffled order and existing dispatch limits. Other strategies are unchanged. This ordering does not increase the three-dispatch limit or original deadline, infer archive capability, or promise equal provider shares or capacity-aware balancing. A hash selector can leave more distinct providers eligible than the dispatch budget can reach. Qualify historical reads against your actual upstreams.Fastest
Fastest places reliability-qualified channels first, ordered by recent mean successful-attempt latency. Successful p95 and provider/transport identity break ties. Evidence is local to the routing node and partitioned by a bounded workload key, rather than a separate unbounded history for every method string. Unqualified channels remain available after qualified channels. When no channel qualifies, Core reports availability degradation and uses its available latency priors and deterministic identity order. Missing or stale evidence does not become proof that a provider is fast or reliable. Lifetime dashboard averages are not the routing score.Latency weighted
Latency weighted also places reliability-qualified channels first. Within a measured group, it calculates relative weights:LW_BETA, a positive number with default 3.0:
Priority
Lower providerpriority values come first within the same health tier. Priority
sets configured precedence; it does not override health or execution-safety checks.
This is a complete profile body for two local HTTP upstreams. Add the profile
frontmatter described in profiles when saving a profile file.
The upstreams must serve the configured chain.
Health comes first
Health tiers take precedence over strategy rank, and open circuits are excluded. Each strategy orders channels within a tier. The tiers and live admission are defined in provider selection.Per-method routing
Choose different URL strategies for different requests. Profile YAML does not acceptrouting, default_strategy or method_overrides blocks.
Provider capabilities can exclude methods and declare range/history limits;
see provider selection.
These restrictions do not select a per-method strategy or prove provider capability.
WebSocket URL strategies apply to forwarded JSON-RPC calls. eth_subscribe uses
the shared subscription pool’s priority-based selection independently of the URL
strategy. An explicit provider URL constrains a subscription to that provider.
Provider override
Use/rpc/provider/:provider_id/:chain to target a configured provider. The
profile-scoped form is /rpc/profile/:profile/provider/:provider_id/:chain.
Identity and live admission checks still apply. A provider override is useful for
diagnosis; it is not proof that normal routing would choose that provider.