In my software model, part of the system is of course a database. I could view it as a separate softwareSystem
or perhaps just a container
. Let’s say it’s:
db = softwareSystem "Database"
softwareSystem "My App" {
-> db "Reads/writes data"
}
This is sufficient as far as my logical relationships are concerned. In my deployment diagram though, I want to highlight that I’m using a connection-pooling proxy, a hot-standby and an offsite backup. Is it possible to encompass all that in a deploymentEnvironment
?
Doing something like this just renders the database as one blob without more details:
deploymentNode "Database service" {
softwareSystemInstance db
group "Multi-AZ" {
deploymentNode "Postgres" {
-> backup "Backup"
}
deploymentNode "Hot standby"
}
deploymentNode "Proxy"
}
Moving softwareSystemInstance db
into deploymentNode "Postgres"
includes that, but still omits the proxy and everything else.
I can’t seem to find a notation that would make My App
point to Proxy
and Proxy
point to Postgres
and include all those details, without also including a proxy in the system model, where it doesn’t seem to belong, because it’s a detail of a specific deployment.
1