# HEARTFLOW_OS // System Architecture & Engineering Topography
## 📌 Executive Summary
HeartFlow OS is a distributed, edge-optimized telemetry pipeline designed for clinical-grade cardiovascular inference. The architecture addresses the inherent tension between heavy-compute machine learning paradigms and the constrained environments of low-power microcontrollers (TinyML).
By aggressively decoupling the presentation layer (Client), the orchestration and modeling engine (Core), and the physical target execution (Edge), the system achieves strict separation of concerns, high-throughput asynchronous concurrency, and near-zero downtime deployment of predictive models.
---
## 🏗 High-Level Architecture Diagram
```mermaid
graph TD
%% Define styles
classDef frontend fill:#111,stroke:#111,stroke-width:2px,color:#fff,font-family:monospace;
classDef backend fill:#fff,stroke:#111,stroke-width:2px,color:#111,font-family:monospace;
classDef ml_node fill:#e61919,stroke:#e61919,stroke-width:2px,color:#fff,font-family:monospace;
classDef edge_tech fill:#f3f3f2,stroke:#111,stroke-width:2px,color:#111,font-family:monospace;
classDef data fill:#94a3b8,stroke:#475569,stroke-width:2px,color:#fff,font-family:monospace;
subgraph Client [Client Application / Next.js 16]
direction TB
UI["Views
(page.tsx)"]:::frontend
WS_Client["WebSocket
(TelemetryContext.tsx)"]:::frontend
HTTP_Client["HTTP Fetch"]:::frontend
end
subgraph Core [FastAPI Core / Python 3.10+]
direction TB
WS_Server["WebSocket Broker
(main.py)"]:::backend
REST_API["REST API Router
(main.py)"]:::backend
Simulator["Vitals Simulator
(simulator.py)"]:::backend
DB["SQLite & aiosqlite
(database.py)"]:::backend
end
subgraph ML_Layer [Intelligence Pipeline / Scikit-Learn]
direction TB
Inference["Inference
(inference.py)"]:::ml_node
Ensemble["Soft-Voting
(ensemble.py)"]:::ml_node
Training["Model Training
(models.py)"]:::ml_node
EdgeCompiler["C-Code Exporter
(export.py)"]:::ml_node
end
subgraph Storage [Persistence & Hardware]
direction TB
ModelWeights["Model Artifacts
(model/)"]:::data
CSV["Patient Dataset
(patient_dataset.csv)"]:::data
MCU["Edge Silicon
(tinyml_model.h)"]:::edge_tech
end
%% Flows
UI --> WS_Client
UI --> HTTP_Client
WS_Client <--> WS_Server
HTTP_Client --> REST_API
WS_Server --> Inference
Simulator --> WS_Server
REST_API --> DB
REST_API --> Training
REST_API --> EdgeCompiler
Inference --> Ensemble
Training --> ModelWeights
Training --> CSV
Ensemble --> ModelWeights
EdgeCompiler --> Ensemble
EdgeCompiler -.-> MCU
```
---
## 1. The Presentation Layer (Client Plane)
Engineered using **Next.js 16 (App Router)** and **React 19**.
- **Rendering Strategy:** Heavily leverages React Server Components (RSC) where applicable, while isolating stateful, high-frequency telemetry updates to optimized Client Components.
- **WebSocket Triage:** Bypasses standard HTTP overhead by multiplexing telemetry streams via native WebSockets (`ws://`). The stream is mapped into a React Context provider, aggressively memoized using `useMemo` and `useCallback` to prevent unnecessary DOM re-renders and React thrashing at 60Hz.
- **Visual Engineering:** Implements an Industrial Brutalist design language. All animations and Layout Transitions are hardware-accelerated (`transform`/`opacity` driven) utilizing `framer-motion` to maintain 60fps even under heavy CPU charting loads.
## 2. The Orchestration Engine (Core Plane)
Built entirely asynchronously on top of **FastAPI** (Python 3.10+).
- **Asynchronous Throughput:** Utilizing the `asyncio` event loop and `uvicorn`, the backend comfortably supports multiple concurrent clinical WebSocket connections. I/O-bound operations (database writes) are completely non-blocking.
- **Stateful Preprocessing:** Live data must match the exact multi-dimensional space the models were trained on. The backend retains a persistent `SimpleImputer` and `StandardScaler`, ensuring live inference vectors are identical in scale to the offline batch data without runtime data leakage.
- **Event-Driven Database:** Implements `aiosqlite` for non-blocking audit logging of predictions, ensuring the primary telemetry event loop is never stalled by disk I/O.
## 3. Intelligence Pipeline & MLOps
Designed for precision and zero-downtime deployment.
- **Distributed Soft-Voting:** Rather than relying on a monolithic architecture, inference is distributed across five orthogonal models (`RandomForest`, `SVM`, `KNN`, `LogisticRegression`, `MLPClassifier`). A soft-voting aggregator calculates the weighted probability distribution, offering a confidence interval rather than a binary black-box output.
- **Live Background Retraining:** The `/retrain` pipeline exposes an API for ingesting new clinical datasets. Upon payload validation, it spins up a `fastapi.BackgroundTasks` thread. The system dynamically updates imputers, recalculates decision boundaries across all 5 models, serializes the updated weights to disk (`.pkl`), and critically—hot-swaps the active `EnsembleModel` object in RAM. This ensures active patient telemetry sessions are never dropped during model redeployments.
## 4. The Edge Compilation Pipeline (TinyML)
The most critical engineering bottleneck in telemetry is getting heavy Python models onto $2 silicon.
- **AST-Based C-Transpilation:** Instead of running a heavyweight Python interpreter (like MicroPython) on the edge device, the backend parses the scikit-learn model's internal Abstract Syntax Trees (AST) and transpiles them directly into pure, statically typed `C` functions.
- **Zero-Dependency Guarantee:** The resulting `tinyml_model.h` file requires no external libraries. It bypasses `malloc()` completely, relying entirely on static stack allocation, eliminating the risk of heap fragmentation or memory leaks in long-running embedded nodes.
- **INT8 Quantization:** 64-bit floating point weights are mathematically clamped and scaled into 8-bit integers (`int8_t`). This quantization dramatically reduces flash storage requirements by up to ~75% and massively accelerates inference execution time on ALU architectures lacking dedicated floating-point hardware (FPU).