readfor a single batch of records.readSessionfor streaming from a position and optionally following new records.checkTailfor inspecting the current end of a stream.
Single-batch read
At the simplest level, you can read a batch of records with a single call:- TypeScript
- Python
- Go
- Rust
Read session
A read session streams records from a starting position. It handles reconnection on transient failures and provides a simple iterator interface. Sessions that do not specify a stop condition will continue to follow updates in real-time.Starting from a sequence number
- TypeScript
- Python
- Go
- Rust
Starting from a tail offset
Read the last N records in the stream, then follow for new ones:- TypeScript
- Python
- Go
- Rust
Starting from a timestamp
Read records starting from a point in time:- TypeScript
- Python
- Go
- Rust
Reading until a timestamp
Read records up to a point in time, then stop:- TypeScript
- Python
- Go
- Rust
Following live updates
By default, a read session without stop conditions will follow the stream indefinitely, waiting for new records as they arrive. When you provide a stop condition (count, bytes, or until), the read stops when either the condition is met or it reaches the current tail — whichever comes first.
See the API docs on waiting at the tail for the full semantics.
Long polling
Thewait parameter controls how long to wait for new records when caught up to the tail. This works for both single-batch reads (long polling) as well as sessions.
- TypeScript
- Python
- Go
- Rust
Check tail
To find the current end of the stream without reading any records:- TypeScript
- Python
- Go
- Rust

