# 29. Technical Architecture Diagrams
## System Context Diagram
```mermaid
graph TB
subgraph "External Systems"
ERP[ERP Systems
SAP, Oracle]
SCADA[SCADA Systems
OPC UA, Modbus]
IoT[IoT Devices
Sensors, Meters]
UTIL[Utility APIs
Energy, Water]
GOV[Government Data
Building Permits, NACE]
end
subgraph "Turash Platform"
API[API Gateway
Kong/Traefik]
AUTH[Authentication Service
JWT, OAuth2]
subgraph "Application Layer"
WEB[Web Frontend
Next.js + React]
MOBILE[Mobile PWA
Progressive Web App]
ADMIN[Admin Dashboard
Enterprise Features]
end
subgraph "Service Layer"
MATCH[Matching Engine
Graph Algorithms]
ECON[Economic Calculator
NPV, ROI Models]
NOTIF[Notification Service
WebSocket, Email]
SEARCH[Search Service
Full-text, Spatial]
end
subgraph "Data Layer"
NEO4J[(Neo4j Graph DB
Relationships, Entities)]
POSTGRES[(PostgreSQL + PostGIS
Spatial, Time-series)]
REDIS[(Redis Cache
Sessions, Matches)]
end
subgraph "Infrastructure"
K8S[Kubernetes Cluster
AWS EKS/GCP GKE]
MQ["Message Queue
NATS/Redis Streams (MVP)
Kafka (Scale)"]
CDN[CDN
CloudFront/Cloudflare]
MONITOR[Monitoring Stack
Prometheus + Grafana]
end
end
subgraph "Users & Partners"
SME[SME Businesses
Resource Providers]
ENTERPRISE[Enterprise Companies
Multi-site Operations]
MUNI[Municipalities
City Governments]
UTIL_PART[Utility Partners
Data & Distribution]
FACIL[Facilitators
Engineers, Consultants]
end
%% Connections
ERP --> API
SCADA --> API
IoT --> API
UTIL --> API
GOV --> API
API --> AUTH
AUTH --> WEB
AUTH --> MOBILE
AUTH --> ADMIN
WEB --> MATCH
MOBILE --> MATCH
ADMIN --> MATCH
MATCH --> ECON
MATCH --> NOTIF
MATCH --> SEARCH
MATCH --> NEO4J
ECON --> POSTGRES
SEARCH --> REDIS
NEO4J --> K8S
POSTGRES --> K8S
REDIS --> K8S
NOTIF --> MQ
MQ --> MONITOR
SME --> WEB
ENTERPRISE --> ADMIN
MUNI --> API
UTIL_PART --> API
FACIL --> WEB
```
## Application Architecture (C4 Container Diagram)
```mermaid
graph TB
subgraph "User Interfaces"
WEB_BROWSER[Web Browser
React + Next.js]
MOBILE_APP[Mobile PWA
React + Service Worker]
ADMIN_PORTAL[Admin Portal
Enterprise Dashboard]
end
subgraph "API Gateway"
KONG["API Gateway
Kong/Traefik
Rate Limiting, Auth"]
end
subgraph "Microservices"
AUTH_SERVICE["Authentication Service
Go 1.25 + JWT
User Management"]
BUSINESS_SERVICE["Business Service
Go 1.25 + Neo4j
CRUD Operations"]
MATCHING_SERVICE["Matching Service
Go 1.25 + Graph Algorithms
Core Engine + Hybrid Automation"]
ECONOMIC_SERVICE["Economic Service
Go 1.25 + PostgreSQL
Calculations"]
NOTIFICATION_SERVICE["Notification Service
Go 1.25 + Redis
WebSocket/Email"]
INGESTION_SERVICE["Ingestion Service
Go 1.25 + NATS/Redis Streams
Data Processing"]
SEARCH_SERVICE["Search Service
Go 1.25 + Elasticsearch
Full-text Search"]
ANALYTICS_SERVICE["Analytics Service
Go 1.25 + TimescaleDB
Reporting"]
DATA_QUALITY_SERVICE["Data Quality Service
Go 1.25 + PostgreSQL
Scoring & Incentives"]
FACILITATOR_SERVICE["Facilitator Service
Go 1.25 + Neo4j
Marketplace & Routing"]
end
subgraph "Data Stores"
NEO4J["(Neo4j Cluster
Graph Database
Relationships)"]
POSTGRES["(PostgreSQL Cluster
Spatial Database
Business Data)"]
REDIS["(Redis Cluster
Cache + Sessions
Performance)"]
NATS["(NATS/Redis Streams
Event Streaming (MVP)
Async Processing)"]
KAFKA["(Kafka Cluster
Event Streaming (Scale)
Migration at 1000+ businesses)"]
ELASTIC["(Elasticsearch
Search Index
Full-text)"]
MINIO["(MinIO/S3
Object Storage
Files & Assets)"]
end
subgraph "Infrastructure Services"
PROMETHEUS[Prometheus
Metrics Collection]
GRAFANA[Grafana
Visualization]
ALERTMANAGER[AlertManager
Incident Management]
LOGGING[Loki + ELK
Log Aggregation]
VAULT[HashiCorp Vault
Secrets Management]
end
%% Internal connections
WEB_BROWSER --> KONG
MOBILE_APP --> KONG
ADMIN_PORTAL --> KONG
KONG --> AUTH_SERVICE
AUTH_SERVICE --> BUSINESS_SERVICE
BUSINESS_SERVICE --> MATCHING_SERVICE
BUSINESS_SERVICE --> DATA_QUALITY_SERVICE
MATCHING_SERVICE --> ECONOMIC_SERVICE
MATCHING_SERVICE --> NOTIFICATION_SERVICE
MATCHING_SERVICE --> FACILITATOR_SERVICE
BUSINESS_SERVICE --> INGESTION_SERVICE
BUSINESS_SERVICE --> SEARCH_SERVICE
BUSINESS_SERVICE --> ANALYTICS_SERVICE
BUSINESS_SERVICE --> NEO4J
MATCHING_SERVICE --> NEO4J
FACILITATOR_SERVICE --> NEO4J
ECONOMIC_SERVICE --> POSTGRES
DATA_QUALITY_SERVICE --> POSTGRES
NOTIFICATION_SERVICE --> REDIS
INGESTION_SERVICE --> NATS
SEARCH_SERVICE --> ELASTIC
ANALYTICS_SERVICE --> MINIO
MATCHING_SERVICE --> PROMETHEUS
PROMETHEUS --> GRAFANA
PROMETHEUS --> ALERTMANAGER
ALL_SERVICES --> LOGGING
ALL_SERVICES --> VAULT
```
## Data Architecture Diagram
```mermaid
graph TD
subgraph "Data Sources"
ERP["ERP Systems
SAP, Oracle
Transactional Data"]
SCADA["SCADA Systems
OPC UA, Modbus
Real-time Process Data"]
IOT_SENSORS["IoT Sensors
Temperature, Flow, Pressure
Time-series Data"]
MANUAL["Manual Entry
Web Forms, CSV Upload
User-Provided Data"]
PUBLIC_DATA["Public Datasets
Government, Utilities
Reference Data"]
end
subgraph "Ingestion Layer"
API_INGEST["API Ingestion
REST/WebSocket
Real-time"]
BATCH_INGEST["Batch Ingestion
CSV, XML, JSON
Scheduled"]
STREAM_INGEST["Stream Processing
NATS/Redis Streams/MQTT
Event-driven"]
WEBHOOKS["Webhook Ingestion
ERP/SCADA Push
Event-triggered"]
end
subgraph "Processing Layer"
VALIDATION["Data Validation
Schema, Business Rules
Quality Gates"]
NORMALIZATION["Data Normalization
Unit Conversion, Standardization
Data Harmonization"]
ENRICHMENT["Data Enrichment
Geocoding, Classification
Context Addition"]
QUALITY_SCORING["Data Quality Scoring
Precision Levels: Rough/Estimated/Measured
Trust Scoring & Incentives"]
DEDUPLICATION["Deduplication
Entity Resolution
Data Quality"]
end
subgraph "Storage Layer"
subgraph "Graph Database (Neo4j)"
BUSINESS_NODES["Business Nodes
Companies, Legal Entities
Properties: name, industry, size"]
SITE_NODES["Site Nodes
Physical Locations
Properties: address, coordinates, type"]
RESOURCE_NODES["Resource Flow Nodes
Energy, Water, Waste
Properties: type, amount, quality"]
SERVICE_NODES["Service Nodes
Maintenance, Consulting
Properties: domain, capacity, rate"]
end
subgraph "Relational Database (PostgreSQL)"
BUSINESS_TABLES["Business Tables
Normalized Business Data
Indexes: name, industry, location"]
SITE_TABLES["Site Tables
Spatial Site Data
PostGIS: coordinates, boundaries"]
RESOURCE_TABLES["Resource Tables
Time-series Flows
Partitioned by time, indexed by location"]
TRANSACTION_TABLES["Transaction Tables
Match Records, Contracts
Audit trail, compliance"]
end
subgraph "Cache Layer (Redis)"
MATCH_CACHE["Match Results Cache
TTL: 15 minutes
Key: location + resource_type"]
SESSION_CACHE["Session Cache
JWT tokens, user state
TTL: 24 hours"]
COMPUTATION_CACHE["Computation Cache
Economic calculations
TTL: 1 hour"]
end
end
subgraph "Access Layer"
GRAPH_API["Graph API
Cypher Queries
Relationship Traversal"]
REST_API["REST API
CRUD Operations
Standard HTTP"]
GRAPHQL_API["GraphQL API
Flexible Queries
Client-driven"]
WEBSOCKET_API["WebSocket API
Real-time Updates
Live Notifications"]
BULK_API["Bulk API
Data Export/Import
Batch Operations"]
end
subgraph "Consumption Layer"
WEB_APP["Web Application
React + Mapbox
User Interface"]
MOBILE_APP["Mobile PWA
Progressive Web App
Field Operations"]
API_CLIENTS["API Clients
ERP Integration
Third-party Systems"]
ANALYTICS["Analytics Platform
Business Intelligence
Reporting & Insights"]
ML_MODELS["ML Models
Recommendation Engine
Predictive Analytics"]
end
%% Data Flow
ERP --> API_INGEST
SCADA --> STREAM_INGEST
IOT_SENSORS --> STREAM_INGEST
MANUAL --> BATCH_INGEST
PUBLIC_DATA --> WEBHOOKS
API_INGEST --> VALIDATION
BATCH_INGEST --> VALIDATION
STREAM_INGEST --> VALIDATION
WEBHOOKS --> VALIDATION
VALIDATION --> NORMALIZATION
NORMALIZATION --> ENRICHMENT
ENRICHMENT --> QUALITY_SCORING
QUALITY_SCORING --> DEDUPLICATION
DEDUPLICATION --> BUSINESS_NODES
DEDUPLICATION --> SITE_NODES
DEDUPLICATION --> RESOURCE_NODES
DEDUPLICATION --> SERVICE_NODES
DEDUPLICATION --> BUSINESS_TABLES
DEDUPLICATION --> SITE_TABLES
DEDUPLICATION --> RESOURCE_TABLES
DEDUPLICATION --> TRANSACTION_TABLES
BUSINESS_NODES --> GRAPH_API
SITE_NODES --> GRAPH_API
RESOURCE_NODES --> GRAPH_API
SERVICE_NODES --> GRAPH_API
BUSINESS_TABLES --> REST_API
SITE_TABLES --> REST_API
RESOURCE_TABLES --> REST_API
TRANSACTION_TABLES --> REST_API
GRAPH_API --> GRAPHQL_API
REST_API --> GRAPHQL_API
GRAPHQL_API --> WEBSOCKET_API
GRAPHQL_API --> BULK_API
WEBSOCKET_API --> WEB_APP
WEBSOCKET_API --> MOBILE_APP
GRAPHQL_API --> API_CLIENTS
BULK_API --> ANALYTICS
REST_API --> ML_MODELS
%% Cache connections
MATCH_CACHE -.-> GRAPHQL_API
SESSION_CACHE -.-> WEBSOCKET_API
COMPUTATION_CACHE -.-> REST_API
```
## Matching Engine Architecture
```mermaid
graph TD
subgraph "Input Processing"
QUERY_IN[Resource Query
Location, Type, Preferences]
CONTEXT_IN[Business Context
Industry, Size, Capabilities]
CONSTRAINTS_IN[Matching Constraints
Distance, Quality, Cost]
end
subgraph "Pre-filtering Stage"
SPATIAL_FILTER["Spatial Filter
PostGIS Query
Radius Search"]
BASIC_FILTER["Basic Filter
Resource Type Match
Availability Windows"]
QUALITY_FILTER["Quality Filter
Grade/Purity Match
Hazard Compatibility"]
end
subgraph "Candidate Selection"
GEO_INDEX["Geospatial Index
R-tree/B-tree
Location-based"]
RESOURCE_INDEX["Resource Index
Composite Index
Type + Direction + Location"]
TEMPORAL_INDEX["Temporal Index
Time-window Index
Availability Overlap"]
end
subgraph "Compatibility Scoring"
QUALITY_SCORER["Quality Scorer
Temperature, Pressure, Purity
Weighted Compatibility"]
TEMPORAL_SCORER["Temporal Scorer
Availability Overlap
Seasonal Factors"]
QUANTITY_SCORER["Quantity Scorer
Supply/Demand Match
Variability Adjustment"]
ECONOMIC_SCORER["Economic Scorer
Cost Arbitrage
Transport Costs"]
TRUST_SCORER["Trust Scorer
Data Precision
Source Validation"]
end
subgraph "Optimization Engine"
WEIGHTED_SUM["Weighted Sum
Multi-criteria Scoring
Configurable Weights"]
RANKING_ENGINE["Ranking Engine
Top-N Selection
Diversity Consideration"]
HYBRID_ROUTER["Hybrid Automation Router
80% Automated, 20% Facilitated
Match Complexity Scoring"]
CONSTRAINT_CHECKER["Constraint Checker
Business Rules
Regulatory Compliance"]
FALLBACK_ENGINE["Fallback Engine
Relaxation Strategies
Alternative Matches"]
end
subgraph "Result Processing"
ECONOMIC_CALCULATION["Economic Calculation
NPV, Payback, ROI
Detailed Projections"]
RISK_ASSESSMENT["Risk Assessment
Technical, Market, Regulatory
Probability Scoring"]
PARTNER_PACKETS["Partner Packet Generation
Technical Specs, Contacts
Legal Templates"]
NOTIFICATION_ENGINE["Notification Engine
WebSocket Push
Email/SMS Alerts"]
end
subgraph "Caching & Persistence"
RESULT_CACHE["Result Cache
Redis TTL Cache
15-minute expiry"]
MATCH_STORAGE["Match Storage
PostgreSQL
Audit Trail"]
ANALYTICS_STORAGE["Analytics Storage
ClickHouse/Timescale
Performance Metrics"]
end
%% Data flow
QUERY_IN --> SPATIAL_FILTER
CONTEXT_IN --> BASIC_FILTER
CONSTRAINTS_IN --> QUALITY_FILTER
SPATIAL_FILTER --> GEO_INDEX
BASIC_FILTER --> RESOURCE_INDEX
QUALITY_FILTER --> TEMPORAL_INDEX
GEO_INDEX --> QUALITY_SCORER
RESOURCE_INDEX --> TEMPORAL_SCORER
TEMPORAL_INDEX --> QUANTITY_SCORER
QUALITY_SCORER --> WEIGHTED_SUM
TEMPORAL_SCORER --> WEIGHTED_SUM
QUANTITY_SCORER --> WEIGHTED_SUM
ECONOMIC_SCORER --> WEIGHTED_SUM
TRUST_SCORER --> WEIGHTED_SUM
WEIGHTED_SUM --> RANKING_ENGINE
RANKING_ENGINE --> HYBRID_ROUTER
HYBRID_ROUTER --> CONSTRAINT_CHECKER
CONSTRAINT_CHECKER --> FALLBACK_ENGINE
FALLBACK_ENGINE --> ECONOMIC_CALCULATION
ECONOMIC_CALCULATION --> RISK_ASSESSMENT
RISK_ASSESSMENT --> PARTNER_PACKETS
PARTNER_PACKETS --> NOTIFICATION_ENGINE
NOTIFICATION_ENGINE --> RESULT_CACHE
RESULT_CACHE --> MATCH_STORAGE
MATCH_STORAGE --> ANALYTICS_STORAGE
```
## Deployment Architecture (AWS)
```mermaid
graph TB
subgraph "Internet"
INTERNET[Global Users
Web, Mobile, API]
end
subgraph "AWS CloudFront (CDN)"
CLOUDFRONT["CloudFront Distribution
Global Edge Locations
SSL Termination"]
end
subgraph "AWS Global Accelerator"
ACCELERATOR["Global Accelerator
TCP/UDP Optimization
Failover Routing"]
end
subgraph "AWS WAF & Shield"
WAF["Web Application Firewall
OWASP Rules
Rate Limiting"]
SHIELD["Shield Advanced
DDoS Protection
Auto Mitigation"]
end
subgraph "AWS Route 53"
ROUTE53["Route 53
DNS Management
Health Checks
Failover"]
end
subgraph "AWS Application Load Balancer"
ALB["Application Load Balancer
Layer 7 Routing
SSL Offloading
Health Checks"]
end
subgraph "AWS Elastic Kubernetes Service (EKS)"
EKS_CONTROL["Control Plane
Managed Kubernetes
Auto-scaling"]
subgraph "Worker Nodes (Auto-scaling Group)"
ON_DEMAND["On-Demand Nodes
General Workloads
t3.large × 3-10"]
SPOT["Spot Nodes
Batch Processing
c6i.xlarge × 2-20"]
end
subgraph "Kubernetes Services"
INGRESS["Ingress Controller
Traefik/Nginx
External Traffic"]
API_PODS["API Service Pods
Go Applications
Horizontal Scaling"]
WORKER_PODS["Worker Pods
Matching Engine
CPU Optimized"]
WEB_PODS["Web Pods
Next.js SSR
Memory Optimized"]
end
end
subgraph "AWS RDS (PostgreSQL)"
RDS_CLUSTER["RDS Aurora Cluster
Multi-AZ
PostGIS Enabled
Read Replicas"]
RDS_PROXY["RDS Proxy
Connection Pooling
Failover Handling"]
end
subgraph "AWS ElastiCache (Redis)"
REDIS_CLUSTER["Redis Cluster
Multi-AZ
Backup Enabled
Encryption"]
end
subgraph "AWS Neptune (Neo4j-compatible)"
NEPTUNE_CLUSTER["Neptune Cluster
Graph Database
Gremlin/Cypher
Multi-AZ"]
end
subgraph "AWS MSK (Kafka)"
KAFKA_CLUSTER["MSK Cluster
Event Streaming (Scale Phase)
Multi-AZ, Migration at 1000+ businesses
Auto-scaling"]
end
subgraph "Message Queue (MVP)"
NATS_CLUSTER["NATS/Redis Streams
Event Streaming (MVP)
Simple, Cost-effective
Kubernetes-native"]
end
subgraph "AWS OpenSearch"
OPENSEARCH["OpenSearch Domain
Full-text Search
Multi-AZ
KNN for ML"]
end
subgraph "AWS S3 & Glacier"
S3_BUCKETS["S3 Buckets
Data Lake
Backup Storage
CDN Origin"]
GLACIER["Glacier Deep Archive
Long-term Backup
Compliance Storage"]
end
subgraph "AWS CloudWatch & X-Ray"
CLOUDWATCH["CloudWatch
Metrics & Logs
Alarms & Dashboards"]
XRAY["X-Ray
Distributed Tracing
Performance Insights"]
end
subgraph "AWS Systems Manager"
SSM["Parameter Store
Configuration Management
Secrets (non-sensitive)"]
end
subgraph "AWS Secrets Manager"
SECRETS_MANAGER["Secrets Manager
Database Passwords
API Keys
Auto-rotation"]
end
subgraph "AWS Backup"
BACKUP_SERVICE["Backup Service
Automated Backups
Cross-region Replication
Retention Policies"]
end
%% Traffic flow
INTERNET --> CLOUDFRONT
CLOUDFRONT --> ACCELERATOR
ACCELERATOR --> WAF
WAF --> SHIELD
SHIELD --> ROUTE53
ROUTE53 --> ALB
ALB --> INGRESS
INGRESS --> API_PODS
INGRESS --> WEB_PODS
API_PODS --> WORKER_PODS
API_PODS --> RDS_PROXY
RDS_PROXY --> RDS_CLUSTER
API_PODS --> REDIS_CLUSTER
WORKER_PODS --> REDIS_CLUSTER
API_PODS --> NEPTUNE_CLUSTER
WORKER_PODS --> NEPTUNE_CLUSTER
API_PODS --> NATS_CLUSTER
WORKER_PODS --> NATS_CLUSTER
API_PODS --> KAFKA_CLUSTER
WORKER_PODS --> KAFKA_CLUSTER
API_PODS --> OPENSEARCH
ALL_SERVICES --> S3_BUCKETS
S3_BUCKETS --> GLACIER
ALL_SERVICES --> CLOUDWATCH
ALL_SERVICES --> XRAY
ALL_SERVICES --> SSM
ALL_SERVICES --> SECRETS_MANAGER
RDS_CLUSTER --> BACKUP_SERVICE
NEPTUNE_CLUSTER --> BACKUP_SERVICE
REDIS_CLUSTER --> BACKUP_SERVICE
```
## CI/CD Pipeline Architecture
```mermaid
graph LR
subgraph "Developer Workstations"
LOCAL_DEV["Local Development
Docker Compose
Kind Cluster"]
end
subgraph "GitHub Repository"
MAIN_BRANCH[main Branch
Production Code]
FEATURE_BRANCHES[feature/* Branches
Development]
RELEASE_BRANCHES[release/* Branches
Staging]
end
subgraph "GitHub Actions"
LINT_JOB["Lint & Format
golangci-lint
ESLint"]
TEST_JOB["Unit & Integration Tests
Go 1.25 test (with feature flags)
Jest, Coverage Reports"]
BUILD_JOB["Build & Containerize
Go 1.25 build (fallback to 1.23)
Docker Build, Multi-arch Images"]
SECURITY_JOB["Security Scan
Trivy, Snyk
Vulnerability Check"]
DEPLOY_DEV_JOB["Deploy to Development
Kind Cluster
Integration Tests"]
DEPLOY_STAGING_JOB["Deploy to Staging
EKS Staging
E2E Tests"]
DEPLOY_PROD_JOB["Deploy to Production
EKS Production
Blue-Green Deployment"]
end
subgraph "Development Environment"
DEV_CLUSTER["Kind Cluster
Local Kubernetes
Full Stack"]
DEV_MONITORING["Development Monitoring
Prometheus + Grafana
Local Stack"]
end
subgraph "Staging Environment"
STAGING_EKS["EKS Staging Cluster
Full Infrastructure
Production-like"]
STAGING_DB["Staging Databases
Neo4j, PostgreSQL, Redis
Test Data"]
STAGING_MONITORING["Staging Monitoring
CloudWatch, X-Ray
Alert Testing"]
end
subgraph "Production Environment"
PROD_EKS["EKS Production Cluster
High Availability
Auto-scaling"]
PROD_DB["Production Databases
Multi-AZ, Backups
Real Data"]
PROD_CDN["CloudFront CDN
Global Distribution
Edge Locations"]
PROD_MONITORING["Production Monitoring
24/7 Alerting
Incident Response"]
end
subgraph "Quality Gates"
CODE_REVIEW["Code Review
Pull Request Review
Architecture Review"]
SECURITY_REVIEW["Security Review
Dependency Check
Secrets Scanning"]
PERFORMANCE_TEST["Performance Test
Load Testing
Scalability Check"]
COMPLIANCE_CHECK["Compliance Check
GDPR, SOC2
Audit Logging"]
end
subgraph "Artifact Repository"
GHCR["GitHub Container Registry
Docker Images
Vulnerability Scanning"]
ARTIFACTS["Test Artifacts
Coverage Reports
Performance Metrics"]
end
%% Development flow
LOCAL_DEV --> FEATURE_BRANCHES
FEATURE_BRANCHES --> CODE_REVIEW
CODE_REVIEW --> MAIN_BRANCH
MAIN_BRANCH --> LINT_JOB
LINT_JOB --> TEST_JOB
TEST_JOB --> BUILD_JOB
BUILD_JOB --> SECURITY_JOB
SECURITY_JOB --> DEPLOY_DEV_JOB
DEPLOY_DEV_JOB --> DEV_CLUSTER
DEV_CLUSTER --> SECURITY_REVIEW
SECURITY_REVIEW --> RELEASE_BRANCHES
RELEASE_BRANCHES --> PERFORMANCE_TEST
PERFORMANCE_TEST --> DEPLOY_STAGING_JOB
DEPLOY_STAGING_JOB --> STAGING_EKS
STAGING_EKS --> COMPLIANCE_CHECK
COMPLIANCE_CHECK --> DEPLOY_PROD_JOB
DEPLOY_PROD_JOB --> PROD_EKS
%% Artifact flow
BUILD_JOB --> GHCR
TEST_JOB --> ARTIFACTS
SECURITY_JOB --> ARTIFACTS
%% Monitoring flow
DEV_CLUSTER --> DEV_MONITORING
STAGING_EKS --> STAGING_MONITORING
PROD_EKS --> PROD_MONITORING
%% Database flow
DEPLOY_DEV_JOB -.-> DEV_CLUSTER
DEPLOY_STAGING_JOB --> STAGING_DB
DEPLOY_PROD_JOB --> PROD_DB
PROD_EKS --> PROD_CDN
```