You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
id: investigate: Cloudflare Workers edition — isolates + Durable Objects + per-user SQLite fit for ID #2044
LIST 12a. ID needs a version that runs with NO container or conventional server: Cloudflare Workers isolates + Durable Objects + SQLite stores, acting as actual servers — 'or technically peer-to-peer servers, sort of'. Today none of ID runs on Workers isolates. Investigate what of ID's core (identity, graph store, relay, app hosting) maps onto isolates/DO/SQLite and what does not. Related prior art: #793 (pkarr on Workers, deferred) — build on it, don't duplicate it. Deliverable: component-by-component fit map.
Program: Drew's 2026-10-28 directive (full text: hatch-personal memory/topics/id-program-2026-10-28.md).
Working pattern: parallel investigations, then the named synthesis issue merges them into a full design. Route guidance: Workhorse by default; Specialist/Summit for synthesis and ramification-heavy work. A result that says "done" is not the endpoint — the orchestrator reviews it and may commission another round. Deliverables: a markdown design/investigation doc (mermaid/SVG diagrams welcome) linked from this issue, plus follow-up issues for anything buildable. Build a proof of concept where the design calls for one, but do NOT build the permanent feature on top of an unreviewed PoC.
Investigation COMPLETE (2026-10-28, Muse research pass; full report lands in-repo via the program docs PR — local copy: ~/workspace/id-program-2026-10-28/investigations/cloudflare-workers-fit.md, 489 lines, cited to Cloudflare/Google official docs; component names grounded in the actual pkgs/id tree).
Verdict: a Workers edition is feasible only as an HTTP/WebSocket-shaped subset — a hosted per-user home server, not a port of the Iroh node.
Per-user Durable Object works as the user's server+DB+live sockets: SQLite storage 10 GB/object (Paid), WebSocket Hibernation means idle users cost storage only ($0.02/mo for a 100 MB store). Rules: hibernating sockets only, batch journal writes, never journal ephemeral traffic.
Per-user SQLite: DO-SQLite beats D1-per-user decisively (D1 caps at 50,000 databases/account and still needs a DO in front). D1's role: one shared directory DB. Blobs go to R2.
Triage verdict (2026-11-03) — investigation already complete; routed into the #2046 synthesis; no new work owed here
The investigation this issue commissions was completed on 2026-10-28 and its verdict is posted on this issue: a Workers edition is feasible only as an HTTP/WebSocket-shaped per-user home-server subset (per-user Durable Object + SQLite; no UDP/inbound listening, so Iroh/QUIC cannot run in an isolate; bridge to native nodes carries ID semantics).
The component-by-component fit map (20 pkgs/id components: fits / fits-with-changes / does-not-fit) was delivered with that pass (report: ~/workspace/id-program-2026-10-28/investigations/cloudflare-workers-fit.md, 489 lines).
Blockers/ordering: none. No follow-up packet is owed from this issue; it stays open under epic #2056 until the #2046 synthesis consumes it, at which point it can close as superseded by the design.
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 30 (priority/none). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
Triage verdict — resolved as superseded (2026-11-03)
The requested investigation and component fit map are already complete; this issue work has been consumed by the serverless-edition synthesis. Closing #2044 as superseded by that synthesis, not by age.
Activity
developing-today commentedon Oct 29, 2026
CODE-965
dezren39 commentedon Oct 29, 2026
Parent epic: #2056 — ID platform expansion (2026-10-28 directive).
dezren39 commentedon Oct 29, 2026
Investigation COMPLETE (2026-10-28, Muse research pass; full report lands in-repo via the program docs PR — local copy: ~/workspace/id-program-2026-10-28/investigations/cloudflare-workers-fit.md, 489 lines, cited to Cloudflare/Google official docs; component names grounded in the actual pkgs/id tree).
Verdict: a Workers edition is feasible only as an HTTP/WebSocket-shaped subset — a hosted per-user home server, not a port of the Iroh node.
storage only ($0.02/mo for a 100 MB store). Rules: hibernating sockets only, batch journal writes, never journal ephemeral traffic.docs(id): 2026-10-28 program investigations — TigerBeetle + Cloudflar…
dezren39 commentedon Nov 3, 2026
🤖 Agent note · done
Triage verdict (2026-11-03) — investigation already complete; routed into the #2046 synthesis; no new work owed here
~/workspace/id-program-2026-10-28/investigations/cloudflare-workers-fit.md, 489 lines).Blockers/ordering: none. No follow-up packet is owed from this issue; it stays open under epic #2056 until the #2046 synthesis consumes it, at which point it can close as superseded by the design.
1 remaining item
developing-today commentedon Nov 3, 2026
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 30 (priority/none). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
dezren39 commentedon Nov 3, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 3, 2026
🤖 Agent note · picked up
dezren39 commentedon Nov 3, 2026
Triage verdict — resolved as superseded (2026-11-03)
The requested investigation and component fit map are already complete; this issue work has been consumed by the serverless-edition synthesis. Closing #2044 as superseded by that synthesis, not by age.
c3d27d0a47863dec0f00e978e1145caec6a3594c;doc/2026-11-01_design_id2046.mdis present on current mainf34b6fd4e980b252419d01af6fbbd4dff00e6ef6.🤖 Agent note · done (superseded)