# Streaming Responses and Real-Time UX

> Source: https://sukruyusufkaya.com/en/learn/claude-ustaligi/streaming
> Updated: 2026-05-11T13:48:35.060Z
> Category: Claude Ustalığı
> Module: 8. Programmatic Claude with the API
**TLDR:** What streaming is, why it matters, and integration with SSE / Web Streams.

# Streaming Niye Önemli?

LLM cevapları 5-30 saniye sürebilir. Stream etmeden bekletirsen kullanıcı kaçar. Token-by-token akış first-byte time'ı 1 saniyenin altına indirir.

```python
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role":"user","content":"Bana kısa bir hikaye anlat"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
```

```ts
// Next.js route handler — SSE
export async function POST(req: Request) {
  const { messages } = await req.json();
  const stream = await anthropic.messages.stream({
    model: "claude-sonnet-4-6",
    max_tokens: 1024,
    messages,
  });

  const encoder = new TextEncoder();
  const readable = new ReadableStream({
    async start(controller) {
      for await (const chunk of stream) {
        if (chunk.type === "content_block_delta") {
          controller.enqueue(encoder.encode((chunk.delta as any).text ?? ""));
        }
      }
      controller.close();
    },
  });
  return new Response(readable, {
    headers: { "Content-Type": "text/event-stream" },
  });
}
```

### Stream event tipleri

- `message_start` — çağrı başladı
- `content_block_start` — yeni içerik bloğu (text / tool_use)
- `content_block_delta` — token geldi (`text_delta`, `input_json_delta`)
- `content_block_stop` — blok kapandı
- `message_delta` — meta delta (usage, stop_reason)
- `message_stop` — bitiş

### Tool use streaming

Tool input alanı `input_json_delta` olarak parça parça gelir. Tam JSON oluşunca tool call'u koş.

### Backpressure / cancel

Kullanıcı sayfayı kapatırsa stream'i `stream.close()` veya `abort` ile sonlandır. Bu hem kaynağı korur hem fatura tasarrufu yapar.

**Boşluk doldurma egzersizi (text):**
```text
Streaming first-byte time'ı düşürür. Tool input delta tipleri _____ JSON delta olarak gelir. Cancel için stream'i _____ ile sonlandır.
```

> ✋ Kontrol noktası: `q-803-mc1`