Program Streams Errors and Reconnects
Handle catalog changes, policy failures, and dropped Program Stream connections.
Common status codes
Reconnect flow
- Store the last processed slot.
- Close the failed channel.
- Wait with exponential backoff and jitter.
- Refresh topics after catalog errors.
- Open a fresh TLS channel.
- Subscribe again.
- Deduplicate overlap in storage.
Program Streams do not accept a replay slot.
For gap-sensitive systems, pair the stream with Yellowstone or RPC reads.
Schema changes
Hash the proto_schema response.
When the hash changes:
- Pause deployment.
- Regenerate payload clients.
- Decode stored fixtures.
- Resume consumers after tests pass.
Backpressure
Do not run slow database work inside the gRPC data callback.
Place events in a bounded queue. Stop or restart the stream when the queue reaches its limit.