Skip to content

[Epic] Unify the client interactivity & communication model #520

@cssbruno

Description

@cssbruno

Architectural plan to reduce the client interactivity surface from ~10 concepts to ~5 orthogonal primitives, fix the determinism integrity risk at its root, and turn the bounded→WASM cliff into a ladder.

Today's surface (~10)

state, computed, effect, props, scoped slots, emit, exports, g:bind, page stores, app-global stores, instance/context state, realtime.

Target (~5 primitives)

  1. Reactive state with a scope axisstate @island|@page|@app|@instance, one lifecycle. → [Architecture] Unify reactive state under one primitive with a scope axis (state @scope) #517
  2. computed / effect — unchanged.
  3. Communication = callback props (actions) + scoped cells (state); bind: is sugar. → [Architecture] Collapse parent-child communication into callback props + scoped cells #518
  4. Scoped slots — unchanged.
  5. No event bus[Components] Native inter-island event/message channel (page-scoped + app-global pub/sub) #514 (closed).

Workstreams

Gated on #384 (don't widen the divergence surface first)

#501 (iteration), #504 (switch/match).

Orthogonal (unaffected by this epic)

#502, #503, #505, #506, #507, #509, #510, #511, #512.

Considered & rejected

Event bus (#514, closed); full-page hydration; resumability (Qwik-style).

Principles

Islands not hydration · bounded / Go-owned / deterministic · explicit ownership over implicit coupling.

Metadata

Metadata

Assignees

No one assigned

    Labels

    architectureFoundational architecture / design-direction workclientGenerated browser enhancement runtimecomponentsComponent language and renderingenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions