workspace "Name" "Description" { !identifiers hierarchical model { archetypes { datastore = container { tags "Data Store" } topic = container { tags "Kafka Topic" technology "Kafka" } } u = person "API user" group "Adhese" { cm = softwaresystem "Campaign Management" { c = container "campaign" { technology "Java 21" } cdb = datastore "campaign db" "PostgreSQL" cw = container "campaign worker" ct = topic "campaign topic" c -> cdb "reads and writes data to/from" "SQL" cw -> cdb "reads new events from outbox table from" "SQL" cw -> ct "publishes events to" "Kafka" } crm = softwaresystem "Creative Management" { c = container "creative" { technology "Java 21" } cdb = datastore "creative db" "PostgreSQL" cbs = datastore "creative blob storage" "Azure Blob Storage" cw = container "creative worker" ct = topic "creative topic" c -> cdb "reads and writes data to/from" "SQL" c -> cbs "stores media files in" "ABS" cw -> cdb "reads new events from outbox table from" "SQL" cw -> ct "publishes events to" "Kafka" } ad = softwaresystem "Ad Delivery" { a = container "ad delivery" { technology "Java 21" } adb = datastore "ad delivery db" "PostgreSQL" a -> adb "reads and writes data to/from" "SQL" } } group "Publisher" { p = softwaresystem "Publisher" { dooh = container "DOOH Display" { technology "DOOH" tags "DOOH" } } } ad.a -> crm.ct "consumes events from" "Kafka" ad.a -> cm.ct "consumes events from" "Kafka" p.dooh -> ad.a "fetches list of ads from" "HTTP" p.dooh -> crm.cbs "downloads media from" "HTTP" u -> cm.c "manages campaigns using" "REST" u -> crm.c "manages creatives using" "REST" } views { # systemLandscape { # include * # autolayout lr # } # systemContext cm "Campaign Management" { # include * # autolayout lr # } # container cm "Campaign Management" { # include * # autolayout lr # } styles { element "Software System" { background #08427b color #ffffff # stroke #555555 # strokeWidth 5 shape Box } element "Element" { color #ffffff background #438dd5 stroke #ffffff # strokeWidth 5 } element "Container" { shape RoundedBox } element "Person" { background #08427b shape person } element "Data Store" { shape cylinder } element "Kafka Topic" { shape pipe } element "DOOH" { shape MobileDeviceLandscape } } } }