GridDB Logo
GridDB Developers
Back to Gallery

Intelligent Cold Chain Guardian

By Dhrumil Joshi Health
Intelligent Cold Chain Guardian
Health

Intelligent Cold Chain Guardian

Preventing Vaccine Loss in India Using GridDB + AI


The ₹600 Crore Problem

India loses ₹600+ crores of vaccines annually—not from lack of infrastructure, but from invisible failures that cascade through the cold chain before anyone notices.

This system sees failures 2-4 hours before they happen.


Why Traditional Monitoring Fails

Failure Type% of LossesCurrent DetectionOur Detection
Equipment degradation40%After breakdown4 hours before
Inadvertent freezing30%After damage15 min before
Human errors20%NeverReal-time verification
Transport delays10%Post-deliveryDynamic rerouting

The difference? We correlate what others keep siloed.


System Architecture: Three Layers

┌─────────────────────────────────────────────────────────┐
│              LAYER 1: Sensing & Memory                   │
│                                                          │
│  50K+ Field Sensors → GridDB Time-Series Cluster        │
│  (Equipment • Placement • Power • Transport • Human)     │
└────────────────────────┬────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│           LAYER 2: Early Risk Detection                  │
│                                                          │
│  Equipment Failure Predictor (2-4 hour warning)         │
│  Freezing Risk Monitor (physics-aware)                  │
│  Transport Delay Predictor (adaptive models)            │
└────────────────────────┬────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│         LAYER 3: Decision Support & Coordination         │
│                                                          │
│  Prioritized Alerts • Maintenance Scheduling            │
│  Human-in-the-Loop Execution                            │
└─────────────────────────────────────────────────────────┘

GridDB is the unified nervous system—enabling sub-second queries across months of multi-domain data.


Why GridDB Changes Everything

Query Speed Comparison

OperationGridDBPostgresInfluxDB
1-hour window aggregate (50K sensors)40ms8,200ms320ms
Multi-container time-aligned joins180ms45,000msN/A
Historical pattern search (90 days)1.2s380s12s

GridDB’s advantage: Native time-series containers with automatic time-based sharding and built-in window functions.

The Five Data Streams

Equipment Telemetry

CREATE TABLE equipment_telemetry (
    sensor_id STRING,
    timestamp TIMESTAMP,
    temperature DOUBLE,
    power_voltage DOUBLE,
    compressor_current DOUBLE,
    freezer_plate_temp DOUBLE,
    PRIMARY KEY (sensor_id, timestamp)
) USING TIMESERIES WITH (
    expiration_time=90,
    expiration_time_unit='DAY'
);

Vaccine Placement

CREATE TABLE vaccine_placement (
    storage_id STRING,
    timestamp TIMESTAMP,
    vaccine_type STRING,
    shelf_position STRING,
    distance_from_plate INTEGER,
    is_freeze_sensitive BOOL,
    batch_number STRING,
    PRIMARY KEY (storage_id, timestamp)
) USING TIMESERIES;

Plus: Power Events, Transport Telemetry, Human Interaction Logs

The magic: All five streams queryable together in real-time.


Layer 2: Early Risk Detection

Equipment Failure Prediction (XGBoost + Causal Analysis)

Standard ML says “this will fail soon.”
We say “voltage instability is causing compressor stress—fix the stabilizer, not the compressor.”

GridDB Feature Extraction:

SELECT 
    sensor_id,
    AVG(power_voltage) OVER (
        ORDER BY timestamp 
        RANGE BETWEEN INTERVAL 1 HOUR PRECEDING AND CURRENT ROW
    ) as voltage_avg_1h,
    STDDEV(power_voltage) OVER (
        ORDER BY timestamp 
        RANGE BETWEEN INTERVAL 6 HOUR PRECEDING AND CURRENT ROW
    ) as voltage_variance_6h,
    MAX(compressor_current) OVER (
        ORDER BY timestamp 
        RANGE BETWEEN INTERVAL 6 HOUR PRECEDING AND CURRENT ROW
    ) as peak_current_6h
FROM equipment_telemetry
WHERE timestamp > NOW() - INTERVAL 90 DAYS;

XGBoost predicts failure 2-4 hours ahead. Causal inference (DoWhy) explains why:

Power instability → Compressor stress → Failure

    Increased runtime → Mechanical wear → Failure

Impact: Saves ₹60K per unit by targeting root causes, not symptoms.


Freezing Prevention (Physics-Informed ML)

Freezing isn’t random—it follows physics:

  • Cold air sinks
  • Distance from freezer plate matters exponentially
  • Vaccine placement determines exposure

We embed thermodynamic constraints into ML:

class FreezePreventionModel(nn.Module):
    def forward(self, features):
        # ML learns patterns from data
        ml_prediction = self.neural_net(features)
        
        # Physics constraint: risk ∝ e^(-distance/λ)
        distance = features[:, 1]
        physics_penalty = torch.exp(-distance / 10.0)
        
        # Combine: ML + Physics
        risk = ml_prediction * (0.7 + 0.3 * physics_penalty)
        return risk

GridDB joins placement + telemetry with exact temporal alignment:

SELECT 
    t.freezer_plate_temp,
    p.distance_from_plate,
    p.shelf_position,
    p.is_freeze_sensitive
FROM equipment_telemetry t
JOIN vaccine_placement p 
    ON t.storage_id = p.storage_id
    AND t.timestamp BETWEEN p.timestamp 
        AND p.timestamp + INTERVAL 1 HOUR;

Result: 89 freezing incidents prevented in pilot. System warns before damage occurs.


Transport Monitoring (Adaptive Models)

Roads, traffic, and weather change constantly. We use adaptive models that learn from changing patterns rather than assuming static environments.

State from GridDB:

state = {
    'current_temp': db.latest('transport_telemetry', vehicle_id),
    'road_quality_7d': db.avg('road_quality_index', route_id, '7d'),
    'historical_delays_p90': db.percentile('delay_minutes', route_id, 0.9)
}

Models discover non-obvious patterns like “depart rural routes at 4 AM to avoid heat, despite higher fuel cost.”


Layer 3: Decision Support & Coordination

Intelligent Prioritization

When multiple risks emerge simultaneously, the system coordinates responses:

class DecisionCoordinator:
    def handle_crisis(self, event):
        proposals = [
            equipment_agent.propose(event),
            logistics_agent.propose(event),
            supervisor_agent.propose(event)
        ]
        
        for p in proposals:
            p.urgency = self.score_vaccine_risk(p)
            p.feasibility = self.check_resources(p)
        
        feasible = [p for p in proposals if p.feasibility > 0.7]
        best = max(feasible, key=lambda p: p.urgency * p.feasibility)
        
        db.log_decision(event, best, proposals)
        return best.execute()

No alert fatigue. System decides priorities intelligently based on:

  • Vaccine value at risk
  • Available resources (trucks, technicians, time)
  • Current system load

Final actions are always presented as recommendations to field workers, not automated commands. This preserves human judgment while providing data-driven guidance.


Predictive Maintenance

Instead of “fix when broken,” we schedule maintenance before failure using learning-based optimization.

The system analyzes 90 days of degradation patterns and learns:

  • “Service Rajasthan ILRs in March before summer heat”
  • “Cluster maintenance in nearby villages to save travel”
  • “Prioritize high-volume PHCs over low-volume sub-centers”

Impact: 60% reduction in emergency repairs.


System Flow (5-Minute Response Loop)

00:00 → Sensors stream to GridDB (50K ILRs, 5K vehicles)
00:01 → GridDB computes live features (voltage variance, temp drift)
00:02 → Risk detection models generate scores
00:03 → Coordinator prioritizes if risks detected
00:04 → Actions dispatched to worker apps (multilingual)

From sensor reading to human decision in under 5 minutes.


Built for Indian Reality

Technical Robustness

Works offline: Edge caching handles connectivity gaps
Scales gradually: District → State → National deployment
No new hardware: Uses existing Universal Immunization Program sensors
Multilingual: Voice alerts in local languages
Privacy-preserving: No PII stored, worker IDs hashed

GridDB cluster scales horizontally. Architecture remains constant.


Technology Choices Explained

TechnologyWhy It MattersAlternative Fails Because
GridDBMulti-container time joins at scaleOther TSDBs order-of-magnitude slower on complex time-aligned joins
Causal InferenceActionable root causes vs predictionsStandard ML shows “what” not “why”
Physics-Informed MLSafety constraints embedded in modelPure neural nets violate physical laws
Adaptive ModelsHandle non-stationary environmentsLSTM/GRU assume static patterns

Contact: dhrumil.joshi.12.12@gmail.com

Team Members: Dhrumil Joshi