SyncingBoarddocs

Architecture Evolution Log

October 20, 2018~333 wordsarchitecture/archive/architecture-evolution.md

Appendix B: Architecture Evolution — Cloud-Relay-First with Tauri as Capability Extender

Status: historical — decision log, context only.

As of v0.5.1, the architecture shifted based on real-world PNA findings and the adoption of cloud relay for Penpot transport.


Discovery: PNA Blocks All Browser -> Localhost Transport

Chrome's Private Network Access (PNA) blocks both fetch() and WebSocket from public origins (Miro plugin sandbox, Penpot web app) to loopback/localhost, regardless of CORS headers or valid SSL. This made Tauri's original role as a local transport bridge unviable from browser contexts.


Decision: Cloud-Relay-First Architecture

LayerBefore (Tauri Transport)After (Cloud Relay)
Penpot transportTauri WebSocket localhostAbly WebSocket + Upstash Redis relay
Figma selectionTauri MCP Figma Desktop portFigma plugin -> relay
Penpot selectionTauri WebSocket -> Companion pluginCompanion plugin -> relay
Selection sourceTauri acts as producer/consumerPlugin acts as producer, relay as transport

Tauri's Role: Capability Extender

Tauri is no longer required for day-to-day sync. It becomes an optional desktop companion for operations that exceed what a pure web plugin can do:

  • Large Binary Transport: Bypasses Vercel 4.5MB serverless limits with chunked streaming.
  • Native Socket IPC: Communicates with local desktop apps (Adobe UXP plugins, Obsidian local APIs, local MCP servers).
  • Local Compute: Runs local LLMs (Ollama) orWAS/Squoosh image compression locally.
  • Background Sync: Long-lived two-way watchers between Miro boards and local files or databases.

Penpot Transport Evolution Timeline

PhaseTransport MechanismProblem SolvedLimitation
v0.4.0Tauri WSSBypassed mixed-content browser blocksChrome PNA blocked browser localhost
v0.5.0HTTP long-pollPassed Chrome PNA checks via targetAddressSpaceCaused 1,000 Redis commands/sec idle
v0.5.1+Cloud RelayEliminated localhost dependencies entirelyHigher network latency round-trip
On this page