1.5 KiB
1.5 KiB
SQ-008: Protobuf API Definitions
Status: [x] DONE
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 RPCsinterface/proto/sq/v1/control_plane.proto- CreateTopic, DeleteTopic, ListTopics, DescribeTopic, CreateConsumerGroupinterface/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) -> PublishResponseSubscribe(SubscribeRequest) -> stream SubscribeResponseAck(AckRequest) -> AckResponse
ControlPlaneService
CreateTopic,DeleteTopic,ListTopics,DescribeTopic,CreateConsumerGroup
ClusterService (internal)
ReplicateEntries,Join,Heartbeat,FetchSegment(streaming)
StatusService
Status(GetStatusRequest) -> GetStatusResponse
Acceptance Criteria
buf lintpasses on all proto filesbuf generateproduces code in sq-grpc-interfacecargo check -p sq-grpc-interfacepasses- All service traits are generated (DataPlaneService, ControlPlaneService, ClusterService, StatusService)
- AckMode enum has ALL, LOCAL, NONE variants