From aedae2a774ede093180f63f5d6d9ff49178af382 Mon Sep 17 00:00:00 2001 From: Marcel Date: Tue, 5 May 2026 22:48:28 +0200 Subject: [PATCH] =?UTF-8?q?docs(legibility):=20update=20c4-diagrams.md=20L?= =?UTF-8?q?2=20=E2=80=94=20add=20ocr-service,=20SSE,=20presigned=20URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #396 Co-Authored-By: Claude Sonnet 4.6 --- docs/architecture/c4-diagrams.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/architecture/c4-diagrams.md b/docs/architecture/c4-diagrams.md index 7cf79d9d..a5b2b22b 100644 --- a/docs/architecture/c4-diagrams.md +++ b/docs/architecture/c4-diagrams.md @@ -34,9 +34,11 @@ C4Container System_Boundary(archiv, "Familienarchiv (Docker Compose)") { Container(frontend, "Web Frontend", "SvelteKit / Node.js", "Server-side rendered UI. Handles session cookies, search UI, document viewer, and admin panel.") - Container(backend, "API Backend", "Spring Boot 4 / Java 21 / Jetty", "REST API. Implements document management, search, user auth, file upload/download, and Excel import.") + Container(backend, "API Backend", "Spring Boot 4 / Java 21 / Jetty", "REST API. Implements document management, search, user auth, file upload/download, transcription, OCR orchestration, and SSE notifications.") - ContainerDb(db, "Relational Database", "PostgreSQL 16", "Stores document metadata, persons, users, permission groups, tags, and Spring Session data.") + Container(ocr, "OCR Service", "Python FastAPI / port 8000", "Handwritten text recognition (HTR) and OCR microservice. Single-node by design — see ADR-001. Reachable only on the internal Docker network; no external port exposed.") + + ContainerDb(db, "Relational Database", "PostgreSQL 16", "Stores document metadata, persons, users, permission groups, tags, transcription blocks, audit log, and Spring Session data.") ContainerDb(storage, "Object Storage", "MinIO (S3-compatible)", "Stores the actual document files (PDFs, scans). Objects keyed as documents/{UUID}_{filename}.") @@ -45,8 +47,11 @@ C4Container Rel(user, frontend, "Uses", "HTTPS / Browser") Rel(frontend, backend, "API requests with Basic Auth token", "HTTP / REST / JSON") + Rel(backend, user, "SSE notifications (server-sent events)", "HTTP / SSE — direct backend-to-browser") Rel(backend, db, "Reads and writes metadata and sessions", "JDBC / SQL") Rel(backend, storage, "Uploads and streams document files", "HTTP / S3 API (AWS SDK v2)") + Rel(backend, ocr, "OCR job requests with presigned MinIO URL", "HTTP / REST / JSON") + Rel(ocr, storage, "Fetches PDF via presigned URL", "HTTP / S3 presigned") Rel(mc, storage, "Creates bucket on startup", "MinIO Client CLI") ```