tasks/send — request/response
Blocking. Server holds the connection, returns final result. Great for tasks under ~30s.
Advertisement
tasks/sendSubscribe — SSE stream
POST /a2a HTTP/1.1
Accept: text/event-stream
{"jsonrpc":"2.0","id":"r1","method":"tasks/sendSubscribe","params":{...}}
HTTP/1.1 200 OK
Content-Type: text/event-stream
data: {"jsonrpc":"2.0","result":{"status":{"state":"working"}}}
data: {"jsonrpc":"2.0","result":{"artifact":{...}}}
data: {"jsonrpc":"2.0","result":{"status":{"state":"completed"}}}
Advertisement
When streaming wins
LLM streaming responses (token-by-token). Long tasks (progress updates). User-facing latency matters — first delta < 500ms.