Skip to main content

SSE Stream Flow


SSE Stream Characteristics

FeatureBehavior
Reader TrackingEach reader gets unique reader_id for independent position tracking
HeartbeatsSent every 5 seconds when no data available
Auto-TimeoutStream closes automatically after extended inactivity
Session TTLDefault 10 minutes (600 seconds)
Event FormatStandard SSE: data: {json}\n\n

SSE Lifecycle Events

sse.stream.start

Sent when SSE stream connection opens.
{
  "type": "sse.stream.start",
  "event_data": {
    "session_id": "lsn-abc123",
    "reader_id": "reader_xyz"
  }
}

sse.stream.heartbeat

Sent periodically when no data events are available.
{
  "type": "sse.stream.heartbeat",
  "event_data": {
    "session_id": "lsn-abc123",
    "session_status": "SESSION_STATUS_RUNNING",
    "num_messages": 42,
    "num_bytes": 15234,
    "message_timeout": 2.5,
    "reader_id": "reader_xyz"
  }
}

sse.stream.end

Sent when stream closes (timeout or session termination).
{
  "type": "sse.stream.end",
  "event_data": {
    "session_id": "lsn-abc123",
    "session_status": "SESSION_STATUS_RUNNING",
    "num_messages": 100,
    "num_bytes": 45678,
    "message_timeout": 58.2,
    "reader_id": "reader_xyz"
  }
}

SSE Reader Statistics

Each reader tracks the following metrics:
MetricDescription
num_messagesTotal messages sent to this reader
num_bytesTotal bytes transmitted
num_errorsTransmission errors encountered
stream_send_delay_sec95th percentile send latency
sse_start_timeStream start timestamp
sse_end_timeStream end timestamp
sse_run_timeTotal stream duration