workspace "Collect System"{ !decisions doc/adr !docs doc/01-system-context !docs doc/02-collect-module/ model { admin = Person "Admin User" "Admin User" "Person" employee = Person "Employee User" "Employee User" "Person" collectHandoff = softwareSystem "Collect Handoff System" { collectHandoffUI = container "Collect Handoff UI" "UI for the Collect Handoff" "ReactJS" "UI" collectHandoffModule = container "Collect Handoff Module" "Collect Handoff Module" "java" "CONTAINER" collectHandoffDB = container "Collect Handoff DB" "Collect Handoff DB" "postgres" "RELDB" collectHandoffUI -> collectHandoffModule "calls" "HTTP/JSON" "HTTP" collectHandoffModule -> collectHandoffDB "read/writes from/to" } collect = softwareSystem "Collect Software System" { collectUI = container "Collect UI" "UI for the Collect portal" "ReactJS" "UI" executionModule = container "Execution Module" "an Execution Module responsible for orchestrating the UI, Services and BRE" "java" "CONTAINER"{ collectDialect = component "collect Dialect" "Dictionary for the Dilect" "java" "Component" } collectModule = container "Collect Module" "Collect Module" "java" "CONTAINER" collectDB = container "Collect DB" "Collect DB" "postgres" "RELDB" collectElasticDB = container "Collect Elastic search DB" "Collect Elastic Search DB" "elastic" "ELASTICDB" collectUI -> executionModule "calls" "HTTP/JSON" "HTTP" executionModule -> collectModule "calls" "HTTP/JSON" "HTTP" collectModule -> collectDB "read/writes from/to" collectModule -> collectElasticDB "read from" } eventbus = softwareSystem "Event Bus"{ } notification = softwareSystem "Notification System" { notificationUI = container "Notification UI" "UI for the Notification portal" "ReactJS" "UI" notificationModule = container "notification Module" "notification Module" "java" "CONTAINER" notificationDB = container "notification DB" "notification DB" "postgres" "RELDB" notificationUI -> notificationModule "calls" "HTTP/JSON" "HTTP" notificationModule -> notificationDB "read/writes from/to" } collect -> eventbus "publishes" notification -> eventbus "consumes" collectHandoffModule -> collectModule "calls" } views { systemLandscape { include * autoLayout } systemContext collect { include * autoLayout } container collect { include * autoLayout } container notification { include * autoLayout } styles { element "Element" { color #ffffff } element "Person" { background #A6B7C9 shape Person } element "Software System" { background #1C75BC shape RoundedBox stroke #333B44 strokeWidth 4 } element "Container" { background #1C75BC shape RoundedBox stroke #333B44 strokeWidth 4 } element "Component" { background #1C75BC stroke #ECE5F2 color #ECE5F2 shape component stroke #333B44 strokeWidth 4 } element "RELDB" { shape Cylinder background #C57B57 stroke #333B44 strokeWidth 4 } element "ELASTICDB" { shape Cylinder background #C5BE57 stroke #333B44 strokeWidth 4 } element "EVENTBUS" { shape Pipe background #00A79D stroke #333B44 strokeWidth 4 } element "EXTERNAL" { background #C9C4CD shape RoundedBox stroke #333B44 strokeWidth 4 } relationship "MESSAGE" { color #333B44 } relationship "HTTP" { color #1C75BC } relationship "HTTPS" { color #00A79D } relationship "HCI" { color #F1BE06 } } } }