How Replay Works

This document is somewhat outdated. While we are working on this, please refer to Replay for New ContributorsReplay for New Contributors instead.
Replay.io is the first time-travel debugger for runtimes like the browser and Node.
We wrote some blog posts outlining how it worked, covering the basics of how we record OS syscalls, use โ€œeffective determinismโ€ to minimize the data needed, and turn browser processes in the cloud into a public API that can be used to introspect a programโ€™s behavior:
  1. Overview
  1. Recording and Replaying
  1. Effective Determinism
  1. Inspecting Runtimes
Thereโ€™s also a recent set of posts talking about the โ€œeffective determinismโ€ aspect in more detail, including how we can replay the full browser behavior with a relatively small recorded set of input data, and how we investigate โ€œruntime mismatchโ€ errors internally:
For some additional details, see these docs pages:
๐Ÿ”„Our approach for source maps ๐ŸƒHow programmatic recordings work
For examples of how the Replay Protocol API is used, see the actual Replay DevTools client repo, the Replay Protocol API Examples repo, and the Protocol API docs