gRPC API
The gRPC API is available on port 50051 and is recommended for low-latency control plane operations.
Proto Definition
Section titled “Proto Definition”syntax = "proto3";package bruhi.v1;
service EngineService { rpc GetHealth (Empty) returns (HealthResponse); rpc CreatePipeline (CreatePipelineRequest) returns (Pipeline); rpc ListPipelines (Empty) returns (PipelineList); rpc DeletePipeline (DeletePipelineRequest) returns (Empty); rpc StreamMetrics (Empty) returns (stream MetricsEvent);}
message Pipeline { string id = 1; string name = 2; string status = 3; string created_at = 4;}
message CreatePipelineRequest { string name = 1; InputConfig input = 2; repeated ProcessingStep processing = 3; OutputConfig output = 4;}Client Example (Python)
Section titled “Client Example (Python)”import grpcfrom bruhi.v1 import engine_pb2, engine_pb2_grpc
channel = grpc.insecure_channel('localhost:50051')stub = engine_pb2_grpc.EngineServiceStub(channel)
# Check healthhealth = stub.GetHealth(engine_pb2.Empty())print(f"Engine status: {health.status}")
# Stream real-time metricsfor event in stub.StreamMetrics(engine_pb2.Empty()): print(f"CPU: {event.cpu_percent}%, Pipelines: {event.active_pipelines}")