workspace extends ../common/finance-common-model.dsl { name "VIP management system" description "VIP management system is responsible for managing VIP configs and calculating user's VIP levels" model { !extend vipManagementSystem { vipManagerDb = container "VipManager database" { description "Stores VIP related data" technology "MySQL" tags "Google Cloud Platform - Compute Engine" "Database" "MySQL" vipManager -> this "Read/write vip status related data" "SQL" } vipManagerCache = container "VipManager cache" { description "Cache VIP related data" technology "Aerospike" tags "Google Cloud Platform - Compute Engine" "Database" "Aerospike" vipManager -> this "Read/write vip status related data" "Aerospike client" -> vipManagerDb "Fill missing data" "SQL" } } } views { systemLandscape "SystemLandscape" "VIP management system landscape" { include * autoLayout } systemContext vipManagementSystem "vipManagementSystemContext" { include * autoLayout } container vipManagementSystem "vipManagementContainer" { include * autoLayout } dynamic vipManagementSystem "read-vip-levels" { user -> vipManager vipManager -> vipManagerCache vipManagerCache -> vipManagerDb autoLayout description "Read vip levels" } dynamic vipManagementSystem "update-vip-levels" { purchaseStateTopic -> vipManager vipManager -> vipManagerDb "Update VIP level" vipManager -> vipStatusTopic vipStatusTopic -> vipManager vipManager -> vipManagerCache "Update vip level" autoLayout description "Update vip levels" } } }