System Overview
This is the shortest architecture view of SOF.
Architecture At A Glance
flowchart LR
subgraph Sources["Ingress"]
UDP["Direct UDP"]
GOSSIP["Gossip bootstrap"]
KB["Kernel-bypass / private raw feed"]
PROVIDER["Processed provider stream"]
end
subgraph Runtime["sof runtime"]
INGEST["Ingest / provider adaptation"]
PARSE["Parse / optional verify"]
FEC["Recovery / reconstruction"]
STATE["Local state"]
HOOKS["Plugins / derived state / extensions"]
end
UDP --> INGEST
GOSSIP --> INGEST
KB --> INGEST
PROVIDER --> STATE
INGEST --> PARSE --> FEC --> STATE --> HOOKS
Read It From Left To Right
SOF is easiest to reason about as three layers:
- ingress
- runtime
- consumption
Traffic enters from one of the supported ingress families. sof turns that ingress into
runtime-owned state and events. Plugins, derived-state consumers, and sof-tx adapters sit on top
of that runtime layer.
Built-in processed provider modes start later in the pipeline than raw-shred modes. That is part of the design, not a bug.
Why This Matters
The important boundaries are:
sofis the live observer/runtimesof-txis the transaction SDK that can consume control-plane outputs fromsof- your own services sit on top of those outputs, not inside the packet path
The other important boundary is honesty about ingress:
- raw-shred modes own more of the substrate
- processed providers start later in the pipeline
- public gossip is the independent baseline, not the universal fast path
The detailed optimization history and measurement method live in Performance and Measurement. This page stays focused on the architecture boundaries instead of repeating that material here.