Component Diagrams - bcgov/lcfs GitHub Wiki
Component Interaction Diagrams
This page is intended to house component interaction diagrams for the LCFS system, fulfilling part of the requirements for ticket #2409.
1. High-Level System Architecture Diagram
- Source: The project root contains an image file:
lcfs-app-architecture.jpg
. - Action: This image should be embedded or linked here.
- If embedding directly in Markdown is not feasible for the GitHub Wiki, the image can be uploaded to the wiki's Git repository and then referenced.
- A description of the diagram should accompany it, explaining the main components and their primary interactions.
!-- Placeholder for a textual representation if direct embedding is complex --
! graph TD
! User Interface (Frontend: React) -->|API Calls (HTTPS)| Backend API (FastAPI)
! Backend API --> Database (PostgreSQL)
! Backend API --> Cache (Redis)
! Backend API --> Message Queue (RabbitMQ)
! Backend API --> Object Storage (MinIO)
!
! ETL Process (Apache NiFi) -->|JDBC| TFRS DB (PostgreSQL - Source)
! ETL Process (Apache NiFi) -->|JDBC| Database (PostgreSQL - LCFS Target)
!
! User Interface -->|OIDC| Keycloak
! Backend API -->|Token Introspection/Validation| Keycloak
2. Detailed Component Diagrams (Draw.io)
- The project may have more detailed diagrams created using
draw.io
or similar tools (e.g., theLCFS_ERD_v0.2.0.drawio
for database schema). - If other
draw.io
diagrams exist for component interactions, they should be:- Exported as SVG or PNG.
- Uploaded to this wiki or a shared image repository.
- Embedded and described here.
- Action: Create or update detailed diagrams focusing on:
- Frontend component interactions.
- Backend service interactions (e.g., with Redis, RabbitMQ, MinIO, Database).
- Authentication flow with Keycloak in more detail.
- Data flow through the ETL NiFi pipeline.
3. Data Flow Diagrams
While there is a separate Data Flows page, key data flow diagrams can also be presented here as they often overlap with component interactions.
This page requires visual assets. Please upload relevant diagrams or create new ones using a tool like draw.io
and embed them here with explanations.