High-level Architecture

# Context

You are tasked with creating a technical architecture diagram based on product requirements and system component
descriptions.

## Detailed Feature Description

[ATTACH THE OUTPUT FROM EXAMPLE-PRODUCT-REQUIREMENTS-INPUT]

## System Components

[LIST ALL RELEVANT SYSTEM COMPONENTS (SERVICES / MODULES / CLASSES / ETC) WITH THEIR DETAILS:
CHOOSE THE APPROPRIATE LEVEL OF DETAIL FOR THE FEATURE YOU'RE DEVELOPING. E.G.:

EXAMPLE FORMAT:
FRONTEND SERVICE

- NODE.JS BFF (BACKEND FOR FRONTEND)
- HANDLES REQUEST AUTHENTICATION AND SESSION MANAGEMENT
- BROWSER AUTHENTICATION HANDLED WITH COOKIES
- ETC...]

# Analysis Phase

1. Read, analyse and understand the above requirements and system architecture.
2. Identify relationships. Map how components interact and communicate.
3. Trace data flow. Visualise how data moves through the system.
4. Determine boundaries. Identify service boundaries, external dependencies, and integration points.
5. Ask any follow up questions that will clear up any ambiguities if needed.

# Output

Create a high level architecture diagram that describes this system.

[DESCRIBE THE LEVEL OF DETAIL THAT IS APPROPRIATE FOR THE FEATURE YOU'RE DEVELOPING]

Format: MermaidJS syntax
Detail Level: [SPECIFY: HIGH-LEVEL OVERVIEW | SERVICE-LEVEL DETAIL | COMPONENT-LEVEL DETAIL]
Include:

- All major components
- Data flow directions
- Data stores
- External dependencies
- Key interactions