Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add system architecture diagram #494

Merged
merged 3 commits into from
Dec 12, 2023
Merged

Add system architecture diagram #494

merged 3 commits into from
Dec 12, 2023

Conversation

lorenyu
Copy link
Contributor

@lorenyu lorenyu commented Dec 5, 2023

Ticket

n/a

Changes

see title

Context

Most projects need a system architecture diagram that they can review with a security team in order to get the authority to deploy their system to production. This change adds a template system architecture diagram in Lucid.

I know that there are some folks who would prefer these diagrams to be built with Mermaid syntax, and I tried giving that option a good faith effort and I think Mermaid is just not that effective of a tool when visual design matters. In particular, when you want to pack a lot of visual information in a small space so that you can reuse the diagram in documents like Confluence, System Security Plan word docs, etc, having full control over the diagram I think is still the best option. You can see the attempt I did with Mermaid here. I got stuck annotating the protocol/ports, there's no way to make the annotation on one side of the line, the text annotation only sits in the middle of the line, so you can't tell if it's the outgoing port or incoming port. Also, the diagram itself isn't very space efficient, and not very pretty.

Testing

n/a

@acouch
Copy link
Member

acouch commented Dec 11, 2023

LGTM.

I know that there are some folks who would prefer these diagrams to be built with Mermaid syntax, and I tried giving that option a good faith effort and I think Mermaid is just not that effective of a tool when visual design matters.

I kind of agree here, but ultimately is a personal preference. One reason there was a preference for mermaid on our project is the desire to capture updates to the architecture in code. You could argue that updated images in markdown docs with appropriate descriptions would capture that as well.

One tool we looked at is https://diagrams.mingrammer.com/ but didn't try, which creates diagrams in code and is more visually appealing, though likely runs up against the same issue you described above for anything more than a simple architecture.

We did use Mermaid for a similar architecture https://github.com/HHS/simpler-grants-gov/tree/main/documentation/architecture#architecture (noting that the ECS cluster should be in the VPC).

@lorenyu lorenyu merged commit 66415a3 into main Dec 12, 2023
1 check passed
@lorenyu lorenyu deleted the lorenyu/archdiagrams branch December 12, 2023 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants