feat: add initial

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
2026-02-26 21:52:50 +01:00
commit 3162971c89
48 changed files with 3041 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
# SQ-008: Protobuf API Definitions
**Status:** `[ ] TODO`
**Blocked by:** SQ-000
**Priority:** High
## Description
Define all protobuf service definitions and generate the Rust gRPC code via buf.
## Files to Create/Modify
- `interface/proto/sq/v1/data_plane.proto` - Publish, Subscribe, Ack RPCs
- `interface/proto/sq/v1/control_plane.proto` - CreateTopic, DeleteTopic, ListTopics, DescribeTopic, CreateConsumerGroup
- `interface/proto/sq/v1/health.proto` - Status service (may already exist from Phase 0)
- `interface/proto/sq/v1/cluster.proto` - ReplicateEntries, Join, Heartbeat, FetchSegment (internal)
- `crates/sq-grpc-interface/src/lib.rs` - updated module re-exports
- Regenerated code in `crates/sq-grpc-interface/src/grpc/`
## Key Service Definitions
### DataPlaneService
- `Publish(PublishRequest) -> PublishResponse`
- `Subscribe(SubscribeRequest) -> stream SubscribeResponse`
- `Ack(AckRequest) -> AckResponse`
### ControlPlaneService
- `CreateTopic`, `DeleteTopic`, `ListTopics`, `DescribeTopic`, `CreateConsumerGroup`
### ClusterService (internal)
- `ReplicateEntries`, `Join`, `Heartbeat`, `FetchSegment` (streaming)
### StatusService
- `Status(GetStatusRequest) -> GetStatusResponse`
## Acceptance Criteria
- [ ] `buf lint` passes on all proto files
- [ ] `buf generate` produces code in sq-grpc-interface
- [ ] `cargo check -p sq-grpc-interface` passes
- [ ] All service traits are generated (DataPlaneService, ControlPlaneService, ClusterService, StatusService)
- [ ] AckMode enum has ALL, LOCAL, NONE variants