startSeq: 0 to start with new events. A positive startSeq resumes after that cursor. If your last processed cursor is 42, subscribe with 42; do not add one.
Treat cursors as opaque, non-negative safe integers. They may contain gaps. Store them per project and consumer purpose so independent integrations do not overwrite each other’s progress.
Process deliveries serially. Persist a cursor only after its handler succeeds. If processing fails, stop that stream before handling later deliveries and resume from the last successful checkpoint. Saving the highest received cursor can permanently skip unfinished work.
Socket.IO reconnects the connection, but your application must subscribe again using its saved cursor. Session recovery is disabled. Replay is limited to retained history; this is not an unlimited archive or an exactly-once processing guarantee.