awslabs / aws-icons-for-plantuml

PlantUML sprites, macros, and other includes for Amazon Web Services services and resources
Other
887 stars 149 forks source link

Request: Overlapping Groups #57

Closed fmalk closed 1 year ago

fmalk commented 1 year ago

One thing with usual AWS diagrams is that some groups have overlaps, like ASG, ECS, etc:

Example: https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2022/09/29/Figure-1.-Launchmetrics-backend-architecture.png Another example: https://d2908q01vomqb2.cloudfront.net/fc074d501302eb2b93e2554793fcaf50b3bf7291/2022/01/12/Fig1-dataPlane.png

I've researched and it seems to me that PlantUML doesn't encourage that kind of overlap, I couldn't find any example of PlantUML or C4 diagram using that kind of overlap. If this is something that can be done by some sort of retangle or Grouping, I'll be happy to try and submit an improvement if anyone can point me at a direction on how to achieve such a thing. By taking a look at the code source I came up empty on ideas.

As it is, the only sane solution to describe how a number of resources can span multiple subnets in the same VPC is to describe the group/cluster as a group, and repeat the same subnets/AZ on each one.

fmalk commented 1 year ago

If this is indeed a limitation with GrouphViz (as it seems to be), this is the best explanation I've found on it:

https://marc.info/?l=graphviz-interest&m=114421940507106

Sorry, no. General subgraphs can share nodes without implying subset containment but \ not clusters. The problem is in the drawing. If clusters can overlap arbitrarily, \ drawing them becomes the problem of drawing Venn diagrams, for which there are no \ good algorithms.

Which is a fair point. I've noticed PlantUML & C4 also don't encourage the use of "border icons", like the IGW at the top right of the first example on my previous post.

hakanson commented 1 year ago

I also believe this is a limitation of GraphViz. It might be worth creating an issue under https://github.com/plantuml/plantuml/issues and see if other PlantUML users have ideas.