bazzar/docs/infrastructure.puml

104 lines
2.2 KiB
Plaintext
Raw Normal View History

2022-11-07 10:25:57 +01:00
@startuml
'https://plantuml.com/deployment-diagram
scale 1000
rectangle "API" {
node "bazzar"
queue rumqttd
component "Accounts Manager" {
node "account-manager"
database "PostgreSQL bazzar_accounts"
"account-manager" <--> "PostgreSQL bazzar_accounts"
"account-manager" --> rumqttd : emit event
usecase "create account"
usecase "me"
"account-manager" -- "create account"
"account-manager" -- "me"
}
component "Carts Manager" {
node "cart-manager"
database "PostgreSQL bazzar_carts"
"cart-manager" <--> "PostgreSQL bazzar_carts"
"cart-manager" <-- rumqttd : account created
}
component "Search Manager" {
node "search-manager"
database "sonic"
"search-manager" <--> "sonic"
"search-manager" <-- rumqttd : product created
"search-manager" <-- rumqttd : product deleted
}
component "Stock Manager" {
node "stock-manager"
database "PostgreSQL bazzar_stocks"
"stock-manager" <--> "PostgreSQL bazzar_stocks"
"stock-manager" --> rumqttd : emit event
}
component "E-Mail Sender" {
node "email-sender"
cloud "sendgrid"
"email-sender" --> "sendgrid"
"email-sender" <-- rumqttd : account created
"email-sender" <-- rumqttd : account deleted
}
actor " rumqttd"
"bazzar" -- "Accounts Manager" : rpc
"bazzar" -- "Carts Manager" : rpc
"bazzar" -- "E-Mail Manager" : rpc
"bazzar" --> " rumqttd" : emit event
}
rectangle "Dependencies" {
database "PostgreSQL bazzar_accounts "
database "PostgreSQL bazzar_carts "
database "sonic "
database "PostgreSQL bazzar_stocks " {
}
cloud "sendgrid "
queue "rumqtt d"
}
'actor actor
'actor/ "actor/"
'agent agent
'artifact artifact
'boundary boundary
'card card
'circle circle
'cloud cloud
'collections collections
'component component
'control control
'database database
'entity entity
'file file
'folder folder
'frame frame
'interface interface
'label label
'node node
'package package
'queue queue
'rectangle rectangle
'stack stack
'storage storage
'usecase usecase
'usecase/ "usecase/"
@enduml