Client · Shared · Server(API, Matchmaking, Session, Play) — same layout and responsibilities in every language
Guided views
Explore this system
Step through curated paths without changing the source diagram.
Beat
Next
ReadyChapter 01 / 01
Guided chapter
Diagram guideExplore this system
Inspecting compiled semantics
E ExportT ThemeS Style0 Reset+ Zoom in- Zoom outEsc Close
Find a node
⌕/
No matching nodes
Semantic passport
Verified source
Authored reach
Route probeChoose a start node
Pick two semantic nodes on the diagram
Choose the source, then the destination. Direction matters.
Semantic lensCompare system roles
Choose up to two semantic kinds. One reveals its real traffic; two compare only direct authored relationships.
Choose a kind to inspect its nodes and touching relationships.
Semantic radar
Building overview
Click nodeDrag to pan
Semantic radar needs more MAP space.
Client and Shared
• Client/Program configures the STREAM connector and runs the scenario once; Client/Scenario owns the §9 assertion order from authentication through stopping observation.
• Shared/Configuration owns the role names, Channel/Mesh names, and sample configuration keys; Shared/Protobuf Contracts owns the same bingo_messages.proto schema and packet names.
Server / API and Matchmaking
• API → Program, Handlers, Player Record Store: owns authentication, player record, and matching-coordination handlers.
• Matchmaking → Program, Application (waiting-room reservation use case), Infrastructure → Redis Adapter, Instance Spot Adapter. The Redis client is placed only under Matchmaking's Infrastructure.
Server / Session and Play
• Session → Program, STREAM Session → Handlers: owns the STREAM session, pre-auth dispatch, and Actor binding/relay.
• Play → Program; Domain → Bingo Card, Bingo Game, Bingo Room State; Infrastructure → Player Actor (Actor Relocation Adapter), Entry Spot (Handlers), Bingo Room Spot (Room Relocation Adapter, Handlers).
• Domain has no Framework, Redis, STREAM, codec, or endpoint types. Merging roles or moving them to a different layer in only one language isn't allowed.