syntax = "proto3"; package aggregate.gateway.v1; service CommandService { rpc SubmitCommand(SubmitCommandRequest) returns (SubmitCommandResponse); } message SubmitCommandRequest { string tenant_id = 1; string command_id = 2; string aggregate_id = 3; string aggregate_type = 4; string payload_json = 5; map metadata = 6; } message Event { string event_id = 1; string command_id = 2; string aggregate_id = 3; string aggregate_type = 4; uint64 version = 5; string event_type = 6; string payload_json = 7; string timestamp_rfc3339 = 8; } message SubmitCommandResponse { repeated Event events = 1; }