Talon configuration covers providers, the control plane, and scheduler behavior.
Provider configuration
Provider config defines model backends and secrets. The config schema supports:
- OpenAI
- Anthropic
- generic OpenAI-compatible providers
Secret sources
Secrets can be sourced from:
- plain inline values
- environment variables
- GCP Secret Manager
- local keychain
- AWS or Azure secret references
Control plane configuration
The control plane config defines:
- database driver and URL
- message broker driver
- scheduler backend configuration
Local socket broker
For a single-host deployment, the control-plane message broker can use a local Unix socket:
control_plane:
database:
driver: sqlite
data_dir: ./var/talon
message_broker:
driver: local_socket
Notes:
- This mode is intended for one host running the gateway and one or more workers locally.
- The broker socket defaults to
talon-broker.sockunder the SQLitedata_dirwhen one is available. - Override the socket path with
TALON_LOCAL_SOCKET_PATH=/absolute/path/talon-broker.sock. local_socketis lightweight and non-durable. It is best for same-host dispatch where queued events do not need to survive process restarts.
SQLite control plane
For a single-host deployment, the control plane database can use SQLite:
control_plane:
database:
driver: sqlite
data_dir: ./var/talon
message_broker:
driver: gcp_pubsub
Notes:
- Talon will create
talon-control-plane.dbunderdata_dir. - You can also set
control_plane.database.urldirectly to a SQLite URL such assqlite:///absolute/path/talon.db. - SQLite is intended for same-host access. Keep the database on a local filesystem, not a network filesystem.
- For local schedule delivery with the same SQLite file, set
TALON_SCHEDULER_DRIVER=local_sqlite.
RocksDB control plane
For single-process embedded deployments, the control plane database can use RocksDB:
control_plane:
database:
driver: rocksdb
data_dir: ./var/talon
message_broker:
driver: local_socket
Notes:
- Talon will create
talon-control-plane.rocksdbunderdata_dir. - You can also set
control_plane.database.urldirectly to a RocksDB path such asrocksdb:///absolute/path/talon-control-plane.rocksdb. - RocksDB is embedded and cannot be opened read/write by separate gateway and worker processes. Start
talon-nodeinstead of separatetalon-serverandtalon-workerprocesses so gateway and worker subscriptions share one control plane. - Runtime tuning is exposed through environment variables:
TALON_ROCKSDB_COMPRESSION=none|lz4,TALON_ROCKSDB_WRITE_BUFFER_SIZE_MB,TALON_ROCKSDB_MAX_WRITE_BUFFER_NUMBER,TALON_ROCKSDB_BLOCK_CACHE_SIZE_MB, andTALON_ROCKSDB_MAX_BACKGROUND_JOBS. TALON_ROCKSDB_DISABLE_WAL=trueskips the write-ahead log and can improve benchmark throughput, but writes can be lost after a crash. Keep it disabled for durable deployments.
Postgres control plane
For multi-service or existing Postgres-backed deployments:
control_plane:
database:
driver: postgres
url:
source: env
key: TALON_DATABASE_URL
message_broker:
driver: gcp_pubsub
Local environment
The local compose stack sets most runtime wiring automatically, including:
- Postgres URL
- Pub/Sub emulator host
- local scheduler driver
- worker pull mode
Provider credentials usually come from .env, environment variables, or another supported secret source.