구현 구조 — Client · Shared · Server

모든 언어가 같은 logical component를 같은 책임으로 구현한다 (GameApi=edge·session, QuestMission=player별 state)

구현 구조 — Client · Shared · Server 모든 언어가 같은 logical component를 같은 책임으로 구현한다 (GameApi=edge·session, QuestMission=player별 state) Program · Client Program Scenario · join~reconcile assertion · Client Scenario join~reconcile assertion Configuration · role·Mesh·stream·marker · Shared Configuration role·Mesh·stream·marker JSON Contracts · action·progress·notify · Shared JSON Contracts action·progress·notify Program · Server / GameApi — edge·session Program Application · Gameplay·SessionBinding · Server / GameApi — edge·session Application Gameplay·SessionBinding Infrastructure · Stream·SpotClient·Query · Server / GameApi — edge·session Infrastructure Stream·SpotClient·Query Program · Server / QuestMission — player별 state Program Domain · Policy·Aggregate·Events · Server / QuestMission — player별 state Domain Policy·Aggregate·Events Application · Apply·Reconcile·Projection · Server / QuestMission — player별 state Application Apply·Reconcile·Projection Infrastructure · Spot·EventStore·ReadModel · Server / QuestMission — player별 state Infrastructure Spot·EventStore·ReadModel Client Shared Server / GameApi — edge·session Server / QuestMission — player별 state

전체 트리 경로와 색

  • • 루트 GameQuest의 top-level 3개: Client · Shared · Server. Server가 GameApi·QuestMission을 담는다. 색: Client·GameApi=파랑(app·edge·session), QuestMission=초록(Spot·player별 state), Shared=회색(공통 자산).
  • • Client { Program, Scenario } · Shared { Configuration, JSON Contracts }.

Server / GameApi 하위

  • • Program.
  • • Application { GameplayUseCases, SessionBinding }.
  • • Infrastructure { StreamHandlers, SpotClients, ProjectionQueryAdapter }.

Server / QuestMission 하위

  • • Program.
  • • Domain { QuestPolicy, PlayerQuestAggregate, QuestEvents }.
  • • Application { ApplyGameplay, ReconcileProgress, ProjectionUpdate }.
  • • Infrastructure { PlayerQuestSpot, EventStoreAdapter, ReadModelAdapter, GameplayStateAdapter }.