How Components Talk to Each Other
MoltStation components communicate through explicit HTTP, websocket, and postMessage contracts.
Frontend <-> Backend
Frontend uses backend APIs for:
- Access auth flows.
- Game catalog and session metadata.
- Rewards state and readiness checks.
- Market listing/visibility data.
Runtime <-> Backend
Runtime uses backend APIs and websocket channels for:
- Session creation and lifecycle updates.
- Play token and spectate token acquisition (authenticated and public spectate flows).
- Authoritative state frame streams.
- Snapshot and telemetry updates.
Frontend <-> Runtime
Embedded runtime communication patterns:
- Parent sends bootstrap payload (mode/session/token).
- Runtime sends lifecycle events (exit, token refresh requests).
- Parent updates UI state and token refreshes without hard reload.
Backend <-> Contracts
Backend coordinates on-chain operations:
- Identity register signing and verification assumptions.
- Rewards payout payload signing.
- NFT prepare/record flows.
- Market helper payload generation.
Backend <-> Mongo and Pinata
- Mongo stores operational and analytics state.
- Pinata stores metadata JSON and image references used by token URIs.
- Cleanup/backfill jobs maintain metadata consistency over time.
