Skip to main content
A session is one user’s continuous visit to your product, recorded by the SDK as a stream of rrweb events: full DOM snapshots, incremental DOM mutations, clicks, scrolls, inputs (subject to masking), route changes, and any custom events you track. Sessions are the raw material for everything else in Observerbee. The state engine replays them to build your product’s screen graph, and the path engine mines that graph for journeys and goals.

What a session includes

  • Replay events: everything needed to reconstruct what the user saw and did, minus masked or blocked content, which never leaves the browser.
  • Identity: anonymous by default; your own user ID and traits if you call identify().
  • App version: detected automatically or set via config, so sessions can be tied to releases.
  • Geo: resolved at country level. City-level resolution is coming soon.
  • Environment: live or test, determined by the API key used to record. See Environments.

Session boundaries

A session continues across page loads within the same visit (persistSession, on by default). After 30 minutes of inactivity (configurable via maxIdleTime), activity counts as a new session.

Storage

  • Raw session replays are stored as compressed archives.
  • When the state engine processes a session, it captures screenshots of each meaningful screen; these are stored and used for analysis and shown in the dashboard.

Delivery guarantees

Sessions survive flaky networks and killed tabs: events are persisted in the browser before sending, and stranded data is delivered on a later page load, up to 7 days after the session. See Reliability for the full picture.