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.