TicTacToe implementation structure

Client · Shared · Server(Api, Play) — same layout and responsibilities in every language

TicTacToe implementation structure Client · Shared · Server(Api, Play) — same layout and responsibilities in every language TicTacToe · Architecture component TicTacToe Client · Architecture component Client Program · Architecture component Program Scenario · Architecture component Scenario Shared · Architecture component Shared Configuration · Architecture component Configuration JSON · Contracts · Architecture component JSON Contracts Server · Architecture component Server Api · Architecture component Api Program · Architecture component Program Application · Architecture component Application CreateGame · Architecture component CreateGame Authenticate · Player · Architecture component Authenticate Player Infrastructure · Architecture component Infrastructure HttpHandlers · Architecture component HttpHandlers UserSource · Adapter · Architecture component UserSource Adapter SpotManager · Adapter · Architecture component SpotManager Adapter Handler · Registration · Architecture component Handler Registration Play · Architecture component Play Program · Architecture component Program Domain · Architecture component Domain Board · Architecture component Board Match · Architecture component Match TurnPolicy · Architecture component TurnPolicy Application · Architecture component Application JoinGame · Architecture component JoinGame PlaceMark · Architecture component PlaceMark LeaveGame · Architecture component LeaveGame Milestone · Publisher · Architecture component Milestone Publisher Infrastructure · Architecture component Infrastructure Stream · Session · Architecture component Stream Session EntrySpot · Architecture component EntrySpot PlayerActor · RelocationAdapter · Architecture component PlayerActor RelocationAdapter RoomSpot · Architecture component RoomSpot Multicast · Handlers · Architecture component Multicast Handlers Store · Providers · Architecture component Store Providers Handler · Registration · Architecture component Handler Registration

Client and Shared

  • • Client/Program configures the HTTP client and stream connector and starts the scenario; Client/Scenario creates the room, authenticates, joins, moves, observes, leaves, and self-checks.
  • • Shared/Configuration fixes the Api/Play role, manual endpoint, Channel, and runner marker; Shared/JSON Contracts owns the HTTP, stream, room, milestone, and state wire declarations.

Server / Api (full names)

  • • Api/Program; Api/Application → CreateGame, AuthenticatePlayer; Api/Infrastructure → HttpHandlers, UserSourceAdapter, SpotManagerAdapter, HandlerRegistration.
  • • Api owns HTTP and the user source and doesn't change board, turn, or room membership.

Server / Play (full names)

  • • Play/Program; Play/Domain → Board, Match, TurnPolicy; Play/Application → JoinGame, PlaceMark, LeaveGame, MilestonePublisher.
  • • Play/Infrastructure → StreamSession, EntrySpot, PlayerActorRelocationAdapter, RoomSpot, MulticastHandlers, StoreProviders, HandlerRegistration.
  • • Domain computes board and winner and doesn't reference ZLink types, the stream connector, or a Redis client; Infrastructure wires stream, actor, Spot, both Stores, and Logical Multicast.