workspace extends ../common/streaming-common-model.dsl { name "Game streams overview " description "Tango Game streaming domain overview" !identifiers hierarchical model { !extend mainKafkaCluster { gameStreamSignalingStateTopic = container "Game stream signaling state topic" { tags "Kafka" "Topic" technology "Kafka topic" description "Contains game stream state events partitioned by streamer id" } } !extend streamingSystem.streamSignaling { -> mainKafkaCluster.gameStreamSignalingStateTopic "Provide game stream state events" "Kafka" } gamingSystem = softwareSystem "Game management system" { description "Game management system" tags "GameDomain" "notOwned" gameStreamSignaling = container "Game Stream signaling" { tags "Google Cloud Platform - Kubernetes Engine" "notOwned" technology "Java" -> streamingSystem.streamSignaling "initGameStream" "HTTP" -> streamingSystem.streamSignaling "terminateGameStream" "HTTP" -> streamingSystem.streamSignaling "onMediaStarted" "HTTPS" -> streamingSystem.streamSignaling "onMediaAlive" "HTTPS" -> streamingSystem.streamSignaling "onMediaStopped" "HTTPS" } gameMatchMaker = container "Game match maker" { tags "Google Cloud Platform - Kubernetes Engine" "notOwned" technology "Java" -> gameStreamSignaling "Init game stream" "HTTP" } } } views { systemLandscape "SystemLandscape" "Game stream domain landscape" { include * autoLayout } systemContext gamingSystem "gamingSystemContext" { include * autoLayout } container gamingSystem "gamingSystemContainer" { include * autoLayout } systemContext streamingSystem "streamingSystemContext" { include * autoLayout } container streamingSystem "streamingSystemContainer" { include * autoLayout } dynamic streamingSystem "game-stream-flow" { title "Game stream flow" description "Describes steps to manage game stream" autoLayout gamingSystem.gameMatchMaker -> gamingSystem.gameStreamSignaling gamingSystem.gameStreamSignaling -> streamingSystem.streamSignaling "initGameStream" "HTTP" streamingSystem.streamSignaling -> mainKafkaCluster.gameStreamSignalingStateTopic "init state" "Kafka" gamingSystem.gameStreamSignaling -> streamingSystem.streamSignaling "onMediaStarted" "HTTP" streamingSystem.streamSignaling -> mainKafkaCluster.gameStreamSignalingStateTopic "onMediaStarted state" "Kafka" gamingSystem.gameStreamSignaling -> streamingSystem.streamSignaling "onMediaAlive" "HTTP" streamingSystem.streamSignaling -> mainKafkaCluster.gameStreamSignalingStateTopic "onMediaAlive state" "Kafka" gamingSystem.gameStreamSignaling -> streamingSystem.streamSignaling "onMediaStopped" "HTTP" streamingSystem.streamSignaling -> mainKafkaCluster.gameStreamSignalingStateTopic "onMediaStopped state" "Kafka" gamingSystem.gameStreamSignaling -> streamingSystem.streamSignaling "terminateGameStream" "HTTP" streamingSystem.streamSignaling -> mainKafkaCluster.gameStreamSignalingStateTopic "terminate state" "Kafka" } } }