Runtime Pipeline
The sof runtime is a bounded pipeline. Thinking in stages is the easiest way to reason about
throughput, backpressure, and where downstream events actually come from.
Pipeline Shape
ingress
-> parse
-> optional verify
-> dedupe / conflict suppression
-> recovery / reconstruction
-> tx extraction and classification
-> control-plane updates
-> plugin / derived-state / extension dispatch
Stage Responsibilities
Ingress
Traffic enters through one of the ingress families:
- direct UDP
- gossip bootstrap
- external kernel-bypass or private raw feed
- processed provider stream
Processed providers enter SOF after the packet and shred stages. They feed transaction and supported control-plane updates into the runtime boundary directly.
Parse and verify
In raw-shred modes, SOF parses packets into shreds and can verify them.
Verification defaults depend on trust posture:
public_untrusted: verification on by defaulttrusted_raw_shred_provider: verification off by default unless explicitly overridden- processed provider mode: no raw shred verification stage because raw packets are not entering SOF
Dedupe and conflict suppression
Duplicate handling is a correctness boundary as much as a performance concern. SOF uses bounded dedupe and suppression so the same observation does not cause duplicate downstream behavior.
Recovery and reconstruction
Recovered or intact shreds are grouped into usable ranges, then reconstructed into datasets and transactions.
Local state and event emission
As datasets and transactions are processed, SOF updates local runtime state such as:
- slot progression
- recent blockhash observations
- leader context
- topology snapshots
- commitment tagging
Those state transitions then drive plugin events and can feed derived-state consumers or sof-tx
adapters.
Switching ingress mode changes which parts of this pipeline SOF actually owns:
- raw shreds: packet, shred, verify, recovery, and reconstruction
- built-in processed providers: provider adaptation and the downstream runtime boundary
- generic providers: the typed runtime boundary you feed into