--- title: "Manage Session State" description: "TODO" --- TODO ## Recommended approach - Store the offset of the last message you have seen (the last event id). - Update your server to stream events from the Events API using that offset. - Write the resulting messages and events to your own database. This lets you resume from a known offset after a disconnect and prevents duplicate writes. ## Recommended: Rivet Actors If you want a managed way to keep long-running streams alive, consider [Rivet Actors](https://rivet.dev). They handle continuous event streaming plus fast reads and writes of data for agents, with built-in realtime support and observability. You can use them to stream `/events/sse` per session and persist each event to your database as it arrives.