Architecture Diagrams¶
10 PlantUML diagrams covering the full Movie Finder architecture.
Source files (*.puml) are in docs/architecture/plantuml/.
Rendering locally
Run the full documentation build from the repo root — no local PlantUML install required:
Or start only the PlantUML server for VS Code live preview:VS Code preview
Open any .puml file and press Option+D (macOS) / Alt+D (Windows/Linux) for a live preview panel.
The jebbs.plantuml extension is pre-configured in .vscode/settings.json.
01 — Domain Model¶
Core data structures: identity, sessions, messaging, and AI pipeline state.

02 — System Architecture Overview¶
All runtime components, external services, and CI/CD pipeline in one view.

03 — Backend Internal Architecture¶
FastAPI layer decomposition: routers, JWT middleware, session store, and configuration.

04 — LangGraph Pipeline (Class View)¶
The chain module: all 8 LangGraph nodes, their services, and the shared MovieFinderState.

05 — LangGraph Phase State Machine¶
Phase lifecycle (discovery → confirmation → qa), next_action routing signals, and refinement cycles.

06 — Frontend Architecture (Angular 21)¶
Component tree, core services, guards, interceptors, and feature modules.

07 — Authentication Flow (Sequence)¶
Register, login, token refresh, and logout end-to-end.

08 — Chat & SSE Streaming Flow (Sequence)¶
Full lifecycle from EventSource fetch through JWT validation, session persistence, LangGraph streaming, and SSE event handling.

09 — LangGraph Pipeline Execution (Sequence)¶
All 8 nodes firing in sequence with conditional branching: discovery, confirmation, Q&A phase, and refinement cycles.

10 — Azure Production Deployment¶
Container Apps environment, PostgreSQL Flexible Server, ACR, Key Vault, Qdrant Cloud, Jenkins CI/CD, and local docker compose reference.

Known Issues cross-reference¶
Diagrams include inline ⚠ Issue #N annotations for the issues that are still open in the current architecture docs. Quick reference:
| GitHub Issue | Severity | Diagrams |
|---|---|---|
| #7 Clients recreated per node | High | 04, 09 |
| #8 IMDb retry 30 s delay | High | 04, 09 |
| #12 UserInDB exposes hash | Medium | 03, 07 |
| #14 Shared Qdrant cluster | Medium | 02, 10 |
| #15 total=False TypedDict | Low | 01, 04 |
| #17 ngrok for webhooks | Low | 02, 10 |