workspace extends ../common/streaming-common-model.dsl { name "Stream-detail service overview" description "Stream-detail service overview" !identifiers hierarchical model { !extend mainKafkaCluster { streamDetailTopic = container "Stream detail topic" { tags "Kafka" "Topic" technology "Kafka topic" description "live-stream-details" } streamDetailCompactTopic = container "Stream detail KTable topic" { tags "Kafka" "Topic" technology "Kafka topic" description "live-stream-details-compact" } datingStreamDetailTopic = container "Dating stream detail topic" { tags "Kafka" "Topic" technology "Kafka topic" description "dating-live-stream-details" } } streamDetailSystem = softwareSystem "Stream-detail system" { !docs docs description "Stream-detail system" tags "StreamDomain" streamDetailService = container "Stream-detail service" { tags "Google Cloud Platform - Kubernetes Engine" technology "Java" mainKafkaCluster.streamSignalingMediaAliveTopic -> this "Get stream state and alive events" "Kafka" -> mainKafkaCluster.streamDetailTopic "Provide all stream detail events" "Kafka" -> mainKafkaCluster.streamDetailCompactTopic "Provide live stream detail events" "Kafka" } streamDetailStorage = container "Aerospike" { tags "Database" } } } views { systemLandscape "SystemLandscape" "Stream domain landscape" { include * autoLayout } dynamic streamDetailSystem "common-stream-flow" { title "Common stream flow" description "Describes steps to process stream events" autoLayout streamingSystem.streamSignaling -> mainKafkaCluster.streamSignalingMediaAliveTopic mainKafkaCluster.streamSignalingMediaAliveTopic -> streamDetailSystem.streamDetailService { { streamDetailSystem.streamDetailService -> mainKafkaCluster.streamDetailTopic } { streamDetailSystem.streamDetailService -> mainKafkaCluster.streamDetailCompactTopic } } } } }