One SendStreamingMessage call over gRPC
A sequence with two lifelines, a client stub and the A2AService in package lf.a2a.v1. The client sends one SendStreamingMessage rpc with a SendMessageRequest and the a2a-version and a2a-extensions metadata keys. The server answers with a stream of StreamResponse messages: first the task, then status_update and artifact_update payloads, then a status_update with a terminal state. The rpc status ends the stream. The figure uses proto names only, because the kit has no gRPC capture.
client
generated stub
A2AService
lf.a2a.v1
1
SendStreamingMessage(SendMessageRequest)
metadata: a2a-version, a2a-extensions
2
StreamResponse { task }
the Task as the server created it
3
StreamResponse { status_update }
TaskStatusUpdateEvent
4
StreamResponse { artifact_update }
TaskArtifactUpdateEvent, one chunk
5
StreamResponse { status_update }
a terminal TaskState
6
rpc status
the stream ends with the rpc