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 a Mermaid system diagram showing data flows and AWS resources #122

Merged
merged 1 commit into from
Oct 30, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions documentation/architecture/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,44 @@ The current remote development environment uses [services provided by cloud.gov]
reports, via [RDS PostgreSQL database](https://cloud.gov/docs/services/relational-database/).
- **Task Queue Broker**: Manages queue of data validation tasks for Celery, via
[AWS Elasticache Redis](https://cloud.gov/docs/services/aws-elasticache/).

### System diagram

```mermaid
flowchart TB
%% NAD System Boundary
subgraph NAD_CH [NAD CH]
direction TB
%% Application and AWS Infrastructure
app[[Python/Flask Server]]

%% Storage Backends
postgres[(RDS Postgres)]
redis{{AWS Redis}}
s3[/S3 Bucket/]

%% Connections from Flask Application
app -.->|Stores provider and submission metadata| postgres
app -.->|Enqueues tasks| redis
app -.->|Reads and writes submissions| s3

%% Job Runner positioned below storage backends
job_runner[[Job Runner]]
job_runner -.->|Reads tasks| redis
job_runner -.->|Reads and writes data| s3
end

%% CI/CD System
cicd[(GitHub or GitLab)]
cicd -->|Deploys application stack - HTTPS| NAD_CH

%% External Components and Users
login[(Login.gov)]
data_provider{{Data Provider}}
nad_admin{{NAD Administrator}}

%% Interactions and Connections
data_provider -- Uploads Data Extracts - HTTPS --> app
nad_admin -- Manages Submissions & Providers - HTTPS --> app
app -->|Authenticates users - HTTPS| login
```
Loading