WebSocket
A bounded batch window over a stream, not real-time delivery.
Read this first
A WebSocket run collects one bounded window of messages and loads it. It is a batch snapshot of a stream. If you need sub-second delivery, Ingest is the wrong tool and this page is telling you so deliberately.
Window bounds
A window ends at whichever comes first: until_idle_seconds, max_messages, max_seconds, or the run
deadline. Always bound the window: an unbounded one is a run that never finishes.
Messages and errors
Each message yields records at message_path, after message_filter. A message matching
error_message_path is an error. Ping/pong keeps the connection alive; a transport drop reconnects
with bounded backoff and resubscribes.
Duplicates
Reconnects can replay. Duplicates are resolved by sequence_field when the protocol has one, and
otherwise by primary key at merge time, never by hoping.
Credential proof
Connect, then read the first message.