The proto

service A2A {
  rpc SendTask(TaskRequest) returns (TaskResponse);
  rpc SubscribeTask(TaskRequest) returns (stream TaskDelta);
  rpc GetTask(GetTaskRequest) returns (Task);
  rpc CancelTask(CancelRequest) returns (Task);
}
Advertisement

Streaming is native

gRPC's server-streaming maps 1:1 to A2A's sendSubscribe. More efficient than SSE, especially for high-frequency updates.

Advertisement

Binary encoding wins bandwidth

Protobuf is 3-10x smaller than JSON. For high-QPS + bandwidth-constrained deployments, meaningful savings.