Cloud Development Environment Platform  ·  View 04 of 21  ·  People and journeys

Journey — Resuming Yesterday's Workspace

The journey that defines the product, and the trough that defines the architecture.

Editable source SVG draw.io All views
Returning developer after a long lunch Goal — Carry on in the same files, with the dev server still up Trigger — Clicks the workspace, or just reconnects the editor Done when — Typing inside 2.5 seconds, nothing reinstalled, nothing lost 1 · Open one click 2 · Wait ◆ moment of truth 3 · Work 4 · Walk away ◆ moment of truth What they do Clicks the workspace Watches the line Edits, tests, pushes Closes the tab What the platform does Authorises at the edge Finds the snapshot Claims a host Restores memory Fetches blocks lazily Snapshots every 5 min Detects idle Hibernates How it feels Delighted Fine Frustrated Where it hurts A cold resume reads as broken Did it keep my work? What answers it Memory image + lazy fetch Progress, not a spinner 5-minute RPO stated Lost interval reported Journey — Resuming Yesterday's Workspace The trough is the wait, and it is why the whole architecture is organised around resume rather than around create. v 1.0 · owner Platform Architecture · date 2026-10

Where it hurts, and the answer

  • The trough is the wait. A resume that takes twelve seconds is read as a broken editor, not as a slow one, which is why the whole design is organised around resume rather than create.
  • The second moment is walking away: the honest answer to "did it keep my work?" is a stated RPO of 5 minutes and a resume that reports the lost interval rather than resuming silently.
  • Progress with a cause (restoring memory, fetching blocks) beats a spinner, so the gateway holds the connection open and streams state instead of failing it.

Assumptions

  • Resume with memory state p50 ≤ 900 ms, p95 ≤ 2.5 s, p99 ≤ 6 s in-region; terminal round-trip p95 ≤ 45 ms.
  • Asynchronous filesystem snapshots every 5 minutes while running (RPO 5 min).

Risks

  • A hibernation that fires during a long build turns the best feature into the worst bug; the liveness signal is composite for exactly this reason (ADR-10).
  • Memory-state restore carries stale sockets, an old clock and expired tokens — all three are reconciled on resume (view 13), and a miss here looks like a haunted machine.