Overall topology

API server · session server · domain server · location store

Overall topology API server · session server · domain server · location store Client app · Architecture component Client app Location store · Architecture component Location store HTTP endpoint · POST /games · API server (e.g. Api) HTTP endpoint POST /games channel client · API server (e.g. Api) channel client spot client · API server (e.g. Api) spot client actor client · API server (e.g. Api) actor client STREAM node · Session server (e.g. Session) STREAM node session relay · Session server (e.g. Session) session relay node handler · Domain server (e.g. Play) node handler Instance Spot · Domain server (e.g. Play) Instance Spot entry spot · assigns · Domain server (e.g. Play) entry spot assigns user spot · actor · Domain server (e.g. Play) user spot actor 1 HTTP request 2a ClientServer channel 2b RouteMesh channel 2c call a Spot by id 2d call an Actor by id 3 STREAM connection relay 4 RouteMesh channel address lookup register API server (e.g. Api) Session server (e.g. Session) Domain server (e.g. Play)

What leaves the API server

  • • channel client — calls by name. A ClientServer channel when one handler settles it, a RouteMesh channel when a unit of state must take it
  • • spot client — calls a Spot by id
  • • actor client — calls an Actor by id

The session server

  • • The STREAM node takes the client connection, relays the session, and passes it to a spot's actor over a RouteMesh channel
  • • It can live in the domain server, but that is not the usual shape — connection count and state throughput grow separately

Location store = discovery only

  • • It keeps server addresses only. The dashed lines are store lookups that find an endpoint, not a data path