# aws-samples/sample-aws-devops-agent-interactive-demo architecture

> Architecture diagram of the GitHub repository aws-samples/sample-aws-devops-agent-interactive-demo, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aws-samples/sample-aws-devops-agent-interactive-demo
- Repository: https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo

## Overview

This is an AWS CDK demo for breaking and repairing six network scenarios while AWS DevOps Agent investigates failures. The user workflow runs from the dashboard’s Break action through infrastructure changes, CloudWatch alarms, an SNS-triggered webhook, agent investigation, and a dashboard status/event view; Fix restores the scenario. The graph preserves the documented network, compute, traffic generation, authentication, PCAP/MCP, image-build, agent, and dashboard subsystems. Stack wiring and selected runtime behavior are excerpted; other documented links are cited to the README rather than treated as inspected implementation.

Main entry points: [`cdk/bin/app.ts`](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/bin/app.ts) (CDK app), [`cdk/lib/dashboard-stack.ts`](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/dashboard-stack.ts) (Dashboard API), [`cdk/lib/devops-agent-stack.ts`](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/devops-agent-stack.ts) (DevOps Agent), [`cdk/frontend/app.js`](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/frontend/app.js) (Dashboard UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_user["Dashboard experience"]
  node_dashboard["Dashboard UI<br/>[app.js]"]
  node_dashboard_stack["Dashboard API<br/>[dashboard-stack.ts]"]
  node_break["Break scenario<br/>[index.ts]"]
  node_fix["Fix scenario<br/>[index.ts]"]
  node_events["Event log<br/>[index.ts]"]
  node_health["Health status<br/>[index.ts]"]
  node_auth["Dashboard auth<br/>[auth-stack.ts]"]
end

subgraph group_infra["Demo infrastructure"]
  node_network["Network stack<br/>[network-stack.ts]"]
  node_compute["Compute stack<br/>[compute-stack.ts]"]
  node_traffic["Traffic generator"]
  node_flowlogs[("VPC flow logs<br/>[network-stack.ts]")]
  node_elb_logs[("ELB access logs<br/>[compute-stack.ts]")]
  node_app["CDK app<br/>[app.ts]"]
end

subgraph group_incident["Incident workflow"]
  node_alarm_stack["Alarm stack<br/>[alarm-stack.ts]"]
  node_sns["Alarm topic<br/>[alarm-stack.ts]"]
  node_webhook["Agent webhook<br/>[index.ts]"]
end

subgraph group_agent["Agent and PCAP"]
  node_agent["DevOps Agent"]
  node_pcap[("PCAP storage and MCP<br/>[pcap-mcp-stack.ts]")]
  node_image["MCP image build<br/>[image-stack.ts]"]
end

node_operator(("Operator"))

node_operator -->|"uses"| node_dashboard
node_dashboard -->|"calls API"| node_dashboard_stack
node_dashboard_stack -.->|"routes break"| node_break
node_dashboard_stack -.->|"routes fix"| node_fix
node_dashboard_stack -.->|"routes events"| node_events
node_dashboard_stack -.->|"routes health"| node_health
node_dashboard -->|"authenticates with"| node_auth
node_operator -->|"breaks scenario"| node_break
node_break -->|"changes infrastructure"| node_network
node_break -->|"changes infrastructure"| node_compute
node_operator -->|"requests restore"| node_fix
node_fix -->|"restores scenario"| node_network
node_fix -->|"restores scenario"| node_compute
node_network -->|"writes logs"| node_flowlogs
node_compute -->|"writes logs"| node_elb_logs
node_traffic -->|"sends traffic"| node_compute
node_alarm_stack -->|"publishes alarms"| node_sns
node_sns -->|"invokes"| node_webhook
node_webhook -->|"notifies"| node_agent
node_agent -->|"analyzes"| node_flowlogs
node_agent -->|"analyzes"| node_elb_logs
node_agent -->|"analyzes PCAP"| node_pcap
node_agent -->|"updates status"| node_events
node_events -->|"serves event log"| node_dashboard
node_health -->|"serves health"| node_dashboard
node_image -.->|"builds runtime for"| node_pcap
node_app -->|"instantiates"| node_network
node_app -->|"instantiates"| node_compute
node_app -->|"instantiates"| node_traffic
node_app -.->|"instantiates"| node_alarm_stack
node_app -->|"instantiates"| node_auth
node_app -->|"instantiates"| node_pcap
node_app -.->|"instantiates"| node_image
node_app -->|"instantiates"| node_agent
node_app -.->|"instantiates"| node_dashboard_stack

click node_dashboard "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/frontend/app.js"
click node_dashboard_stack "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/dashboard-stack.ts"
click node_break "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lambda/dashboard-break/index.ts"
click node_fix "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lambda/dashboard-fix/index.ts"
click node_events "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lambda/dashboard-events/index.ts"
click node_health "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lambda/dashboard-health/index.ts"
click node_auth "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/auth-stack.ts"
click node_network "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/network-stack.ts"
click node_compute "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/compute-stack.ts"
click node_traffic "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/traffic-gen-stack.ts"
click node_alarm_stack "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/alarm-stack.ts"
click node_sns "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/alarm-stack.ts"
click node_webhook "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lambda/webhook/index.ts"
click node_agent "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/devops-agent-stack.ts"
click node_pcap "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/pcap-mcp-stack.ts"
click node_image "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/image-stack.ts"
click node_flowlogs "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/network-stack.ts"
click node_elb_logs "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/compute-stack.ts"
click node_app "https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/bin/app.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dashboard,node_dashboard_stack,node_break,node_fix,node_events,node_health,node_auth toneBlue
class node_network,node_compute,node_traffic,node_flowlogs,node_elb_logs,node_app toneAmber
class node_alarm_stack,node_sns,node_webhook toneMint
class node_agent,node_pcap,node_image toneRose
class node_operator toneIndigo
```

## Components

### Dashboard experience

- [Dashboard UI](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/frontend/app.js): `cdk/frontend/app.js`
- [Dashboard API](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/dashboard-stack.ts): `cdk/lib/dashboard-stack.ts`
- [Break scenario](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lambda/dashboard-break/index.ts): `cdk/lambda/dashboard-break/index.ts`
- [Fix scenario](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lambda/dashboard-fix/index.ts): `cdk/lambda/dashboard-fix/index.ts`
- [Event log](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lambda/dashboard-events/index.ts): `cdk/lambda/dashboard-events/index.ts`
- [Health status](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lambda/dashboard-health/index.ts): `cdk/lambda/dashboard-health/index.ts`
- [Dashboard auth](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/auth-stack.ts): `cdk/lib/auth-stack.ts`

### Demo infrastructure

- [Network stack](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/network-stack.ts): `cdk/lib/network-stack.ts`
- [Compute stack](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/compute-stack.ts): `cdk/lib/compute-stack.ts`
- [Traffic generator](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/traffic-gen-stack.ts): `cdk/lib/traffic-gen-stack.ts`
- [VPC flow logs](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/network-stack.ts): `cdk/lib/network-stack.ts`
- [ELB access logs](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/compute-stack.ts): `cdk/lib/compute-stack.ts`
- [CDK app](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/bin/app.ts): `cdk/bin/app.ts`

### Incident workflow

- [Alarm stack](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/alarm-stack.ts): `cdk/lib/alarm-stack.ts`
- [Alarm topic](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/alarm-stack.ts): `cdk/lib/alarm-stack.ts`
- [Agent webhook](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lambda/webhook/index.ts): `cdk/lambda/webhook/index.ts`

### Agent and PCAP

- [DevOps Agent](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/devops-agent-stack.ts): `cdk/lib/devops-agent-stack.ts`
- [PCAP storage and MCP](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/pcap-mcp-stack.ts): `cdk/lib/pcap-mcp-stack.ts`
- [MCP image build](https://github.com/aws-samples/sample-aws-devops-agent-interactive-demo/blob/main/cdk/lib/image-stack.ts): `cdk/lib/image-stack.ts`

### Other components

- **Operator**

## Connections

- Operator → Dashboard UI: uses (evidence: `README.md`)
- Dashboard UI → Dashboard API: calls API (evidence: `cdk/frontend/app.js`)
- Dashboard API → Break scenario: routes break
- Dashboard API → Fix scenario: routes fix
- Dashboard API → Event log: routes events
- Dashboard API → Health status: routes health
- Dashboard UI → Dashboard auth: authenticates with (evidence: `cdk/frontend/app.js`)
- Operator → Break scenario: breaks scenario (evidence: `README.md`)
- Break scenario → Network stack: changes infrastructure (evidence: `README.md`)
- Break scenario → Compute stack: changes infrastructure (evidence: `README.md`)
- Operator → Fix scenario: requests restore (evidence: `README.md`)
- Fix scenario → Network stack: restores scenario (evidence: `README.md`)
- Fix scenario → Compute stack: restores scenario (evidence: `README.md`)
- Network stack → VPC flow logs: writes logs (evidence: `cdk/lib/network-stack.ts`)
- Compute stack → ELB access logs: writes logs (evidence: `README.md`)
- Traffic generator → Compute stack: sends traffic (evidence: `cdk/lib/traffic-gen-stack.ts`)
- Alarm stack → Alarm topic: publishes alarms (evidence: `README.md`)
- Alarm topic → Agent webhook: invokes (evidence: `README.md`)
- Agent webhook → DevOps Agent: notifies (evidence: `README.md`)
- DevOps Agent → VPC flow logs: analyzes (evidence: `README.md`)
- DevOps Agent → ELB access logs: analyzes (evidence: `README.md`)
- DevOps Agent → PCAP storage and MCP: analyzes PCAP (evidence: `README.md`)
- DevOps Agent → Event log: updates status (evidence: `README.md`)
- Event log → Dashboard UI: serves event log (evidence: `README.md`)
- Health status → Dashboard UI: serves health (evidence: `cdk/frontend/app.js`)
- MCP image build → PCAP storage and MCP: builds runtime for
- CDK app → Network stack: instantiates (evidence: `cdk/bin/app.ts`)
- CDK app → Compute stack: instantiates (evidence: `cdk/bin/app.ts`)
- CDK app → Traffic generator: instantiates (evidence: `cdk/bin/app.ts`)
- CDK app → Alarm stack: instantiates (evidence: `cdk/bin/app.ts`)
- CDK app → Dashboard auth: instantiates (evidence: `cdk/bin/app.ts`)
- CDK app → PCAP storage and MCP: instantiates (evidence: `cdk/bin/app.ts`)
- CDK app → MCP image build: instantiates (evidence: `cdk/bin/app.ts`)
- CDK app → DevOps Agent: instantiates (evidence: `cdk/bin/app.ts`)
- CDK app → Dashboard API: instantiates (evidence: `cdk/bin/app.ts`)
