# 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 ```