Single source of truth for Solti's Protobuf / gRPC contracts.
The schema lives here; each consumer generates its own bindings (Rust via prost/tonic, Go via buf).
The repo root is the buf module root. File paths match package names (buf STANDARD lint).
solti/
task/v1/ # task management API
types.proto
api.proto
discover/v1/ # agent discovery / heartbeat
discovery.proto
raft/v1/ # internal control-plane replication
raft.proto
| Package | Service | Purpose |
|---|---|---|
solti.task.v1 |
TaskService |
Task management on the agent. The control-plane is the client. |
solti.discover.v1 |
DiscoverService |
Agent registers and sends heartbeats to the control-plane. |
solti.raft.v1 |
— | Internal Raft FSM state replicated between control-plane nodes. |
Tasks run buf inside a Docker image, so local runs match CI. Requires Taskfile and Docker.
task ci/lint # buf lint
task ci/format # clang-format check (aligned style)
task ci/build # buf build (compile the schema)
task ci/breaking # buf breaking against main
task format/fix # clang-format -i (auto-format)Schema is versioned in the package path (v1).
Found a bug? Have an idea? Open an issue or send a PR.