RelayRoom

Four devices, one room, every message in order.

Local Simulation
Room Code

Starting the room.

Virtual Client Grid

Four simulated devices share the room on a three second heartbeat. Stall one and watch the sweep evict it after ten seconds of silence.

Relay Stream

An append only log. Every event takes the next sequence number, and the four cells show which lanes held it.

    Message Lab

    Compose a script against its own room, then run it one step at a time and read exactly why each event was accepted, rejected or swept.

    Script

      Decision Trace

      The lab room is fresh.

        Lab Stream

          Code Validator

          A room code is six characters from a 31 character alphabet with the lookalikes removed. The sixth character is a checksum digit computed from the first five.

          Type a six character code.

          Format
          Six characters.
          Charset
          From the 31 character alphabet.
          Checksum
          The sixth character matches the weighted sum.

          The 1,000 Code Sweep

          Runs the same checks the test suite runs: 1,000 generated codes validated and deduplicated, then 6,000 single character mutations thrown at them.

          Generated
          0
          Valid
          0
          Unique
          0
          Mutations Rejected
          0
          Time
          0 ms

          How The Engine Works

          The room core is a deterministic event log. It has no timers and no network: time only moves when a clock advances it, so the same script always produces the same log.

          Strict Ordering

          Every event takes the next sequence number, one higher than the last. Messages from all four devices interleave into a single ordered stream, and each sender keeps its own counter on top.

          Heartbeats

          Each device pings the room every three seconds. A ping is an event like any other, with its own place in the log and its own sequence number.

          Stale Eviction

          A device silent for more than ten seconds is swept out with a leave event that records how long it went quiet. It can rejoin later and starts a fresh sender sequence.

          Replay Windows

          A rejoining device asks for everything after a sequence it already holds. The engine hands back that exact window of the log, copies, in order.

          About transport: this build has no server. The engine, the log and the scheduler all run in this page, which is why the badge above says Local Simulation. When a backend exists, a WebSocket transport is the drop in replacement for the in page scheduler: it would call the same engine methods and append to the same log.