HyperEdgeEdge SSR · Rust/Wasm · WebGPU
엣지 CMH · US · workerd

아키텍처

구조적 UI(DOM)와 고연산 UI(Canvas/GPU)를 나누고, 무거운 연산은 메인 스레드 밖 Wasm 으로 보냅니다.

영역별 담당

영역렌더링연산코드
상단 바 · 좌측 메뉴엣지 Streaming SSR (DOM)—components/shell.tsx
주문 입력SSR DOM + Qwik 신호Wasm: 호가·밴드·한도·Luhn 검증, HMAC-SHA256components/order-form.tsx, core/src/order.rs
체결 내역 (10만 건)가상화 DOM (보이는 행만)Wasm: 필터 + 다중 정렬 → 순열engine/grid.ts, core/src/query.rs
실시간 차트단일 canvas, WebGPU (WebGL2 대체)Wasm: 시세 갱신 + 정점 정규화engine/chart.ts, core/src/market.rs

데이터 경로

  1. <head> 의 preload 가 core_logic.wasm 을 받기 시작하고, 메인 스레드가 compileStreaming 으로 컴파일한 모듈을 워커에 넘깁니다.
  2. 워커가 Wasm 인스턴스를 만들고 10만 행을 생성해 컬럼별 SharedArrayBuffer 에 복사합니다.
  3. 정렬·필터 요청은 메시지 하나로 가고, 결과 순열은 공유 버퍼 이중화(슬롯 0/1)로 돌아옵니다.
  4. 차트는 rAF 마다 다음 프레임을 요청하고, 워커가 공유 버퍼에 쓴 정점을 writeBuffer 로 GPU 에 올려 그립니다.

cross-origin isolation(COOP/COEP)이 없는 환경에서는 같은 데이터를 ArrayBuffer 전송(transfer)으로 주고받습니다. 대시보드의 “렌더링 단계” 패널이 어느 경로로 돌고 있는지 표시합니다.