Choose the Right SOF Path
Most services do not need the whole workspace on day one. Start from the smallest useful slice.
Common Adoption Patterns
I need a local Solana ingest and event runtime
Start with sof when the service needs:
- a local observer/runtime
- plugin or derived-state outputs
- local slot, topology, or blockhash signals
- runtime extensions
- explicit replay, dedupe, health, and operations boundaries
I need transaction construction and submission
Start with sof-tx when the service needs:
- a transaction builder
- RPC-backed submission
- Jito integration
- signed-byte submission
- optional direct leader routing or hybrid routing once local control-plane data exists
Important boundary:
sof-txbuilds, signs, routes, and submits transactions- it does not ingest Solana traffic or derive live leader and blockhash state by itself
- it expects those inputs through provider traits, either from static values, your own control
plane, RPC, or optional adapters fed by
sof
I need both local ingest state and execution
Use sof together with sof-tx when the execution service wants locally sourced control-plane
state for submission decisions.
That is the normal pairing for services that:
- derive leader, topology, slot, and recent blockhash state from live traffic
- want direct or hybrid routing decisions
- need one process or one host to own both observation and submission decisions
That adapter path is complete today in raw-shred and gossip-backed SOF runtimes. Built-in
processed provider adapters can now emit transactions, transaction status, account updates,
block-meta, logs, and slots where supported, but they still do not by themselves provide the full
live sof-tx control-plane surface.
This does not mean sof-tx depends on sof in general. It does not. sof-tx is still useful on
its own for RPC, Jito, and signed-byte flows.
I need repeatable host tuning profiles
Add sof-gossip-tuning when you want typed host presets instead
of environment-variable sprawl.
Decision Shortcuts
| If you need... | Start here |
|---|---|
| local observation, plugins, derived state, or runtime ownership | sof |
| transaction build and submit client | sof-tx |
| submission informed by local observed state | sof + sof-tx |
| typed runtime tuning profiles | sof-gossip-tuning |
| gossip backend internals | only then look at sof-solana-gossip |