01 The Challenge
Climate data is fragmented across academic, governmental, and commercial sources —
meteorological readings, CO₂ projections, corporate ESG disclosures, and civic
policy indices exist in isolation. Individuals, businesses, and governments each
need fundamentally different intelligence from the same underlying data, yet no
unified platform translates the raw signal into actionable, domain-specific insight.
The problem compounds at scale: any platform must simultaneously serve a
personal user tracking their carbon footprint, a corporation managing Scope 1–3
emissions, and a government official benchmarking Paris Agreement progress — each
with distinct data models, visualisations, and latency requirements, all from a
single truth source.
02 The First Principles Approach
The first step was deconstruction: decompose "climate intelligence"
into its four irreducible user contexts — Global (physical systems), Personal (behavioural
carbon), Corporate (ESG supply chain), and Civic (policy governance). Each context
demands a separate data model and intelligence layer, not a single monolith trying
to serve all four.
Synthesis produced a microservices architecture where each domain
owns its data pipeline and ML service, coordinated through an Ocelot API Gateway with
per-route rate limiting and circuit breaking. The frontend consumes all four through
a single React SPA with lazy-loaded routes — minimising initial load while maintaining
runtime separation.
Hardening required JWT authentication at the gateway layer, Azure Key
Vault for secrets management (no credentials in code), TLS 1.2 enforcement, VNet
isolation, and per-route timeout enforcement — production-grade security from day one.
03 Technical Implementation
The frontend is a React 18 + TypeScript 5 SPA using Framer Motion for page
transitions, Recharts for six interactive chart types (Area, Bar, Line, Radar, Pie,
RadialBar), and a custom ResponsiveChart wrapper built on ResizeObserver
for reliable responsive rendering without layout thrash.
The backend spans four .NET 8 microservices (myclimate, businessnexus, civicpulse,
identity) behind an Ocelot API Gateway handling JWT auth, rate limiting (10–200
req/min per route), QoS circuit breakers, and service discovery via Consul.
Async messaging between services runs through MassTransit on Azure Service Bus.
The AI/ML layer is a FastAPI + Uvicorn analytics engine with TensorFlow 2.15,
PyTorch 2.1, scikit-learn, Prophet (time-series forecasting), and GeoPandas for
geospatial climate data processing. Infrastructure is fully codified: modular Bicep
templates deploy Container Apps (auto-scale 1–10), Azure SQL, Cosmos DB, Redis,
Key Vault, and CDN through a single azd up.
Technologies Used
React 18 + TypeScript
.NET 8 / ASP.NET Core
FastAPI + Uvicorn
TensorFlow 2.15
Prophet (Time Series)
GeoPandas
Azure Container Apps
Azure Bicep / AZD
Ocelot API Gateway
Recharts
Docker Compose (14 services)
PostgreSQL + Cosmos DB
04 Results & Impact
JED Climate is the most technically comprehensive project in the EDON portfolio —
a 14-service full-stack platform spanning frontend, microservices, ML/AI, and cloud
infrastructure, all deployed and live. It demonstrates the EDON First Principles
methodology at enterprise scale.
4
Live Intelligence Dashboards
14
Microservices Orchestrated
6
Interactive Chart Types
1×
azd up Full Cloud Deploy
"Climate data is not a display problem — it's a modelling problem. Four user
contexts require four data models and four ML layers, not one dashboard trying
to be everything to everyone."
— John Edoh Onuh, EDON