diff --git a/architecture.md b/architecture.md index cdc26eb..fc9d6c4 100644 --- a/architecture.md +++ b/architecture.md @@ -1,264 +1,81 @@ -# COGNITIVE AI MANUFACTURING AGENT (IOT INDUSTRY AUTOMATION) - -```mermaid graph TB - %% IoT Device Layer - subgraph "IoT Device Layer" - A1[Temperature Sensors
°C Monitoring] - A2[Pressure Sensors
Bar/PSI Readings] - A3[Vibration Sensors
Accelerometer Data] - A4[Flow Sensors
Liquid/Gas Flow] - A5[Proximity Sensors
Position Detection] - A6[Current Sensors
Power Consumption] - A7[Speed Sensors
RPM Monitoring] - A8[Level Sensors
Tank/Container Levels] + %% IoT Sensors + subgraph "IoT Sensors" + A1[Temp/Pressure/Vibration
Flow/Speed/Level] end - %% Edge Computing Layer - subgraph "Edge Computing Layer" - B1[Edge Gateway
Local Processing] - B2[Data Validation
Quality Checks] - B3[Local Cache
Temporary Storage] - B4[Protocol Conversion
Modbus/OPC-UA to MQTT] + %% Edge Processing + subgraph "Edge Layer" + B1[Edge Gateway
Data Validation] + B2[MQTT Broker
Protocol Convert] end - %% Communication Protocol Layer - subgraph "MQTT Communication Layer" - C1[MQTT Broker
Message Distribution] - C2[Topic Management
Sensor/alerts/commands] - C3[QoS Handling
Message Reliability] - C4[Security Layer
TLS/SSL Encryption] + %% Stream Processing + subgraph "DataStreamX" + C1[Real-time Ingestion] + C2[Pattern Detection] + C3[Data Enrichment] end - %% DataStreamX Processing Layer - subgraph "DataStreamX (Apache StreamPipes)" - D1[Data Ingestion
Real-time Collection] - D2[Stream Processing
Data Transformation] - D3[Data Enrichment
Context Addition] - D4[Pattern Detection
Anomaly Identification] - D5[Data Routing
Multiple Destinations] - D6[Buffer Management
Peak Load Handling] + %% Event Streaming + subgraph "Kafka" + D1[Event Topics
sensor-data/alerts] + D2[Consumer Groups] end - %% Apache Kafka Event Streaming - subgraph "Apache Kafka Event Streaming" - E1[Producer API
Event Publishing] - E2[Topic Partitions
sensor-data
alerts
commands
system-logs] - E3[Consumer Groups
AI Agents
Dashboard
Archive] - E4[Event Store
Message Persistence] - E5[Stream Processing
Kafka Streams] + %% AI Engine + subgraph "AI Processing" + E1[Anomaly Detection] + E2[Predictive Maintenance] + E3[Decision Engine] end - %% AI Processing Engine - subgraph "AI Processing Engine" - F1[Node.js AI Agent
Real-time Processing] - F2[Python AI Agent
ML Analytics] - F3[Anomaly Detection
Statistical Models] - F4[Predictive Maintenance
Failure Prediction] - F5[Pattern Recognition
Trend Analysis] - F6[Decision Tree
Action Classification] - F7[Machine Learning
Continuous Learning] - F8[Rule Engine
Business Logic] + %% Actions + subgraph "Actions" + F1{Critical?} + F2[Emergency Stop] + F3[Auto-Fix] + F4[Optimization] end - %% Decision & Action Layer - subgraph "Decision & Action Layer" - G1{Critical Alert?} - G2{Self-Healing Enabled?} - G3[Emergency Shutdown
Safety Protocol] - G4[Auto-Fix Actions
Parameter Adjustment] - G5[Equipment Control
Start/Stop/Adjust] - G6[Maintenance Schedule
Preventive Actions] - G7[Optimization
Performance Tuning] + %% Notifications + subgraph "HookPilot" + G1[Workflow Engine] + G2[Multi-channel
Telegram/Email/Slack] end - %% HookPilot Notification System - subgraph "HookPilot (ActivePieces) Automation" - H1[Webhook Receiver
Event Processing] - H2[Workflow Engine
Automation Rules] - H3[Multi-channel Dispatch
Notification Routing] - H4[Template Engine
Message Formatting] - H5[Retry Mechanism
Delivery Guarantee] - H6[Integration APIs
Third-party Services] + %% Dashboard + subgraph "React Dashboard" + H1[Real-time Monitor] + H2[Analytics] + H3[Control Panel] end - %% External Notification Channels - subgraph "External Notification Channels" - I1[Telegram Bot
Instant Alerts] - I2[Email System
SMTP Delivery] - I3[Slack Integration
Team Notifications] - I4[SMS Gateway
Critical Alerts] - I5[WhatsApp API
Mobile Alerts] - I6[Custom Webhooks
API Endpoints] - I7[Mobile Push
App Notifications] + %% Storage + subgraph "Storage" + I1[Time Series DB] + I2[Event Store] end - %% React Dashboard Interface - subgraph "React Dashboard Interface" - J1[Real-time Monitoring
Live Data Display] - J2[System Overview
Health Status] - J3[Alert Management
Acknowledge/Dismiss] - J4[Analytics Dashboard
Charts & Graphs] - J5[Device Configuration
Settings Panel] - J6[User Management
Access Control] - J7[Historical Reports
Trend Analysis] - J8[Control Panel
Manual Override] + %% Learning Loop + subgraph "ML Loop" + J1[Performance Metrics] + J2[Model Retraining] end - %% Data Storage Layer - subgraph "Data Storage & Analytics" - K1[Time Series Database
Sensor History] - K2[Event Store
Action Logs] - K3[Configuration DB
System Settings] - K4[User Database
Authentication] - K5[ML Model Store
Trained Models] - K6[Backup System
Data Recovery] - end - - %% Feedback Loop - subgraph "Feedback & Learning Loop" - L1[Performance Metrics
System KPIs] - L2[Model Retraining
Continuous Learning] - L3[Threshold Adjustment
Dynamic Tuning] - L4[Rule Optimization
Logic Refinement] - end - - %% Data Flow Connections - A1 --> B1 - A2 --> B1 - A3 --> B1 - A4 --> B1 - A5 --> B2 - A6 --> B2 - A7 --> B3 - A8 --> B4 - - B1 --> C1 - B2 --> C2 - B3 --> C3 - B4 --> C4 - - C1 --> D1 - C2 --> D2 - C3 --> D3 - C4 --> D4 - - D1 --> D5 - D2 --> D5 - D3 --> D6 - D4 --> E1 - D5 --> E1 - D6 --> E1 - - E1 --> E2 - E2 --> E3 - E3 --> F1 - E3 --> F2 - E4 --> E5 - E5 --> F7 - - F1 --> F3 - F2 --> F4 - F3 --> F6 - F4 --> F5 - F5 --> F8 - F6 --> G1 - F7 --> F8 - F8 --> G1 - - G1 -->|Yes| G3 - G1 -->|No| G2 - G2 -->|Yes| G4 - G2 -->|No| H1 - G3 --> H1 - G4 --> G5 - G4 --> G6 - G5 --> G7 - G6 --> H1 - G7 --> H1 - - H1 --> H2 - H2 --> H3 - H3 --> H4 - H4 --> H5 - H5 --> H6 - - H6 --> I1 - H6 --> I2 - H6 --> I3 - H6 --> I4 - H6 --> I5 - H6 --> I6 - H6 --> I7 - - E3 --> J1 - F8 --> J2 - H2 --> J3 - K1 --> J4 - G5 --> J5 - K4 --> J6 - K2 --> J7 - J8 --> G5 - - D5 --> K1 - G5 --> K2 - J5 --> K3 - J6 --> K4 - F7 --> K5 - K1 --> K6 - K2 --> K6 - - J1 --> L1 - K1 --> L2 - F8 --> L3 - G7 --> L4 - L1 --> L2 - L2 --> F7 - L3 --> F8 - L4 --> G7 - - %% Styling - style A1 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px - style A2 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px - style A3 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px - style A4 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px - style A5 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px - style A6 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px - style A7 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px - style A8 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px - - style D1 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px - style D2 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px - style D3 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px - style D4 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px - style D5 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px - style D6 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px - - style F1 fill:#fff3e0,stroke:#f57c00,stroke-width:2px - style F2 fill:#fff3e0,stroke:#f57c00,stroke-width:2px - style F3 fill:#fff3e0,stroke:#f57c00,stroke-width:2px - style F4 fill:#fff3e0,stroke:#f57c00,stroke-width:2px - style F5 fill:#fff3e0,stroke:#f57c00,stroke-width:2px - style F6 fill:#fff3e0,stroke:#f57c00,stroke-width:2px - style F7 fill:#fff3e0,stroke:#f57c00,stroke-width:2px - style F8 fill:#fff3e0,stroke:#f57c00,stroke-width:2px - - style H1 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px - style H2 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px - style H3 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px - style H4 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px - style H5 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px - style H6 fill:#e8f5e8,stroke:#388e3c,stroke-width:2px - - style J1 fill:#fce4ec,stroke:#c2185b,stroke-width:2px - style J2 fill:#fce4ec,stroke:#c2185b,stroke-width:2px - style J3 fill:#fce4ec,stroke:#c2185b,stroke-width:2px - style J4 fill:#fce4ec,stroke:#c2185b,stroke-width:2px - style J5 fill:#fce4ec,stroke:#c2185b,stroke-width:2px - style J6 fill:#fce4ec,stroke:#c2185b,stroke-width:2px - style J7 fill:#fce4ec,stroke:#c2185b,stroke-width:2px - style J8 fill:#fce4ec,stroke:#c2185b,stroke-width:2px - - style G1 fill:#ffebee,stroke:#d32f2f,stroke-width:3px - style G2 fill:#ffebee,stroke:#d32f2f,stroke-width:3px -``` \ No newline at end of file + %% Connections + A1 --> B1 --> B2 --> C1 + C1 --> C2 --> C3 --> D1 + D1 --> D2 --> E1 + E1 --> E2 --> E3 --> F1 + F1 -->|Yes| F2 + F1 -->|No| F3 --> F4 + F2 --> G1 + F3 --> G1 + F4 --> G1 + G1 --> G2 + D2 --> H1 --> H2 + H3 --> F3 + C3 --> I1 + E3 --> I2 + H2 --> J1 --> J2 --> E1 \ No newline at end of file