diff --git a/DIAGRAMS.md b/DIAGRAMS.md index 40f93ec6..8b834aa3 100644 --- a/DIAGRAMS.md +++ b/DIAGRAMS.md @@ -1,4 +1,5 @@ # Diagrams +These diagrams are created with Mermaid and rendered locally. For the best experience, please use a browser. # Project Structure Kyoo is a monorepo that consists of several projects each in their own directory. Diagram below shows an outline of kyoo, projects, and artifacts. @@ -99,9 +100,9 @@ C4Container System_Boundary(internal, "Kyoo") { Container(frontend, "front/") Container(backend, "back/") + ContainerQueue(emb, "emb", "", "EnterpriseMessageBus") Container(transcoder, "transcoder/") Container(scanner, "scanner/") - ContainerQueue(emb, "emb", "", "EnterpriseMessageBus") Container(autosync, "autosync/") } System_Boundary(external, "") { @@ -118,7 +119,6 @@ C4Container Rel(user, backend, "") Rel(frontend, backend, "") Rel(backend, emb, "") - Rel(backend, media, "") Rel(backend, transcoder, "") Rel_Back(autosync, emb, "") Rel(autosync, tracker, "") @@ -162,7 +162,7 @@ C4Component ### Back ```mermaid C4Component - UpdateLayoutConfig($c4ShapeInRow="4", $c4BoundaryInRow="3") + UpdateLayoutConfig($c4ShapeInRow="5", $c4BoundaryInRow="2") title Component Diagram for Back @@ -172,41 +172,37 @@ C4Component Component(frontend_c1, "kyoo_front", "typescript, node.js", "Static Content") } Container_Boundary(backend, "back") { - Component(backend_c1, "kyoo_migrations", "C#, .NET 8.0", "Postgres Migration") - ComponentDb(backend_db1, "backend", "Postgres", "user data and session state") - Component(backend_c3, "BackendMetadata", "Volume", "Persistent. Distributed Metadata") ComponentDb(backend_db2, "search", "Meilisearch", "search resource") + Component(backend_c3, "BackendMetadata", "Volume", "Persistent. Distributed Metadata") + ComponentDb(backend_db1, "backend", "Postgres", "user data and session state") + Component(backend_c1, "kyoo_migrations", "C#, .NET 8.0", "Postgres Migration") Component(backend_c2, "kyoo_back", "C#, .NET 8.0", "API Backend") } - Container_Boundary(media, "MediaLibrary") { - Component_Ext(media_c1, "MediaShare", "Volume", "Read Only") - } - Container_Boundary(transcoder, "transcoder") { - Component(transcoder_c1, "kyoo_transcoder", "go, go", "Video Transcoder") - } Container_Boundary(emb, "emb") { ComponentQueue(emb_e1, "events.watched", "RabbitMQ, Exchange", "") - ComponentQueue(emb_q2, "scanner.rescan", "RabbitMQ, Queue", "") ComponentQueue(emb_q1, "autosync", "RabbitMQ, Queue", "") + ComponentQueue(emb_q2, "scanner.rescan", "RabbitMQ, Queue", "") ComponentQueue(emb_e2, "events.resource", "RabbitMQ, Exchange", "unused") } Container_Boundary(scanner, "scanner") { - Component(scanner_c1, "kyoo_scanner", "python, python3.12", "scanner") Component(scanner_c2, "kyoo_scanner", "python, python3.12", "matcher") + Component(scanner_c1, "kyoo_scanner", "python, python3.12", "scanner") } Container_Boundary(autosync, "autosync") { Component(autosync_c1, "kyoo_autosync", "python, python3.12", "") } + Container_Boundary(transcoder, "transcoder") { + Component(transcoder_c1, "kyoo_transcoder", "go, go", "Video Transcoder") + } Rel(user, backend_c2, "") Rel(backend_c1, backend_db1, "") Rel(backend_c2, backend_db1, "") Rel(backend_c2, backend_db2, "") - Rel(backend_c2, media_c1, "") Rel(backend_c2, transcoder_c1, "") Rel(backend_c2, backend_c3, "") Rel(backend_c2, emb_q2, "produces") @@ -260,14 +256,14 @@ C4Component Component(scanner_c1, "kyoo_scanner", "python, python3.12", "scanner") } - Container_Boundary(emb, "emb") { - ComponentQueue(emb_q2, "scanner.rescan", "RabbitMQ, Queue", "") - } - Container_Boundary(backend, "back") { Component(backend_c2, "kyoo_back", "C#, .NET 8.0", "API Backend") } + Container_Boundary(emb, "emb") { + ComponentQueue(emb_q2, "scanner.rescan", "RabbitMQ, Queue", "") + } + Rel(scanner_c1, scanner_q1, "produces") Rel(scanner_c1, media_c1, "watches") Rel(scanner_c1, backend_c2, "Fetch existing scans")