# 36-Region Global Deployment Blueprint

## Overview

This document defines the latency-aware and balanced 36-region global deployment blueprint for the DeFi Oracle Meta Mainnet (ChainID 138).

**Design Principles:**
- Latency-aware: Regions grouped into low-latency "rings" for consensus optimization
- Balanced: Even geographic distribution across all continents
- Quota-optimized: All regions within 10 vCPU per region limit
- Practical: All regions are non-US commercial Azure regions

---

## 🌍 36-Region Workload Set (Non-US Commercial)

### Geographic Distribution

**Europe (14 regions)**
- West Europe (`westeurope`) - *Primary*
- North Europe (`northeurope`) - *Primary*
- UK South (`uksouth`) - *Primary*
- UK West (`ukwest`)
- France Central (`francecentral`) - *Primary*
- Germany West Central (`germanywestcentral`) - *Primary*
- Switzerland North (`switzerlandnorth`) - *Primary*
- Sweden Central (`swedencentral`)
- Norway East (`norwayeast`)
- Poland Central (`polandcentral`)
- Spain Central (`spaincentral`)
- Italy North (`italynorth`)
- Austria East (`austriaeast`)
- Belgium Central (`belgiumcentral`)

**Asia Pacific incl. India (13 regions)**
- East Asia (`eastasia`) - *Primary*
- Southeast Asia (`southeastasia`) - *Primary*
- Japan East (`japaneast`) - *Primary*
- Japan West (`japanwest`)
- Korea Central (`koreacentral`)
- Korea South (`koreasouth`)
- Australia East (`australiaeast`) - *Primary*
- Australia Southeast (`australiasoutheast`)
- New Zealand North (`newzealandnorth`)
- Central India (`centralindia`) - *Primary*
- West India (`westindia`)
- Indonesia Central (`indonesiacentral`)
- Malaysia West (`malaysiawest`)

**Middle East (3 regions)**
- UAE North (`uaenorth`)
- Qatar Central (`qatarcentral`)
- Israel Central (`israelcentral`)

**Americas (Non-US) (5 regions)**
- Canada Central (`canadacentral`) - *Primary*
- Canada East (`canadaeast`)
- Brazil South (`brazilsouth`)
- Chile Central (`chilecentral`)
- Mexico Central (`mexicocentral`)

**Africa (1 region)**
- South Africa North (`southafricanorth`)

**Total: 14 + 13 + 3 + 5 + 1 = 36 regions** ✅

---

## 🎯 Latency-Aware Architecture

The 36 regions are organized into **four low-latency rings**:

### Ring 1: Europe (14 regions)
- Very tight RTT between NL, IE, DE, FR, UK, etc.
- **Primary regions**: West Europe, North Europe, France Central, Germany West Central, UK South, Switzerland North
- Suitable for fast consensus rounds

### Ring 2: Asia Pacific (13 regions)
- Japan–Korea–SE Asia–India–Australia cluster
- **Primary regions**: East Asia, Southeast Asia, Japan East, Australia East, Central India
- Optimized for APAC region performance

### Ring 3: Middle East + Africa (4 regions)
- UAE, Qatar, Israel, South Africa
- Provides regional coverage and backup validators

### Ring 4: Americas Non-US (5 regions)
- Canada, Brazil, Chile, Mexico
- **Primary region**: Canada Central
- Western hemisphere coverage

### Consensus Strategy

- **60-70% of producing validators** in Europe + Asia rings (lower latency)
- **30-40% geo-distributed backup validators** across all rings
- Block times: 2-4s (QBFT/IBFT2) with geo-aware committee selection

---

## 📋 Node Distribution Blueprint

### Design Rules

- Each node = **2 vCPUs**
- Each region must stay **≤ 10 vCPUs**
- Even, supportable patterns across all regions

### Allocation Strategy

**Every region: 2 System Nodes**
- 2 × 2 vCPUs = **4 vCPUs** per region

**Validators:**
- **12 "primary" regions**: **2 Validators** each (4 vCPUs)
- **Remaining 24 regions**: **1 Validator** each (2 vCPUs)

### Per-Region Totals

**Primary 12 regions:**
- 2 System + 2 Validators = 4 VMs, **8 vCPUs** ✅

**Other 24 regions:**
- 2 System + 1 Validator = 3 VMs, **6 vCPUs** ✅

---

## 📊 Primary Regions (2 Validators Each - 8 vCPUs)

| Region | Geography | System Nodes | Validator Nodes | Total VMs | Total vCPUs |
|--------|-----------|--------------|-----------------|-----------|-------------|
| West Europe | Europe | 2 | 2 | 4 | 8 |
| North Europe | Europe | 2 | 2 | 4 | 8 |
| France Central | Europe | 2 | 2 | 4 | 8 |
| Germany West Central | Europe | 2 | 2 | 4 | 8 |
| UK South | Europe | 2 | 2 | 4 | 8 |
| Switzerland North | Europe | 2 | 2 | 4 | 8 |
| East Asia | APAC | 2 | 2 | 4 | 8 |
| Southeast Asia | APAC | 2 | 2 | 4 | 8 |
| Japan East | APAC | 2 | 2 | 4 | 8 |
| Australia East | APAC | 2 | 2 | 4 | 8 |
| Central India | APAC | 2 | 2 | 4 | 8 |
| Canada Central | Americas | 2 | 2 | 4 | 8 |

**Subtotal (Primary 12):**
- System Nodes: 12 × 2 = **24**
- Validator Nodes: 12 × 2 = **24**
- Total VMs: 12 × 4 = **48**
- Total vCPUs: 48 × 2 = **96**

---

## 📊 Remaining Regions (1 Validator Each - 6 vCPUs)

All of these get: **2 System, 1 Validator** → **3 VMs, 6 vCPUs**.

| Region | Geography | System Nodes | Validator Nodes | Total VMs | Total vCPUs |
|--------|-----------|--------------|-----------------|-----------|-------------|
| UK West | Europe | 2 | 1 | 3 | 6 |
| Sweden Central | Europe | 2 | 1 | 3 | 6 |
| Norway East | Europe | 2 | 1 | 3 | 6 |
| Poland Central | Europe | 2 | 1 | 3 | 6 |
| Spain Central | Europe | 2 | 1 | 3 | 6 |
| Italy North | Europe | 2 | 1 | 3 | 6 |
| Austria East | Europe | 2 | 1 | 3 | 6 |
| Belgium Central | Europe | 2 | 1 | 3 | 6 |
| Japan West | APAC | 2 | 1 | 3 | 6 |
| Korea Central | APAC | 2 | 1 | 3 | 6 |
| Korea South | APAC | 2 | 1 | 3 | 6 |
| Australia Southeast | APAC | 2 | 1 | 3 | 6 |
| New Zealand North | APAC | 2 | 1 | 3 | 6 |
| West India | APAC | 2 | 1 | 3 | 6 |
| Indonesia Central | APAC | 2 | 1 | 3 | 6 |
| Malaysia West | APAC | 2 | 1 | 3 | 6 |
| UAE North | Middle East | 2 | 1 | 3 | 6 |
| Qatar Central | Middle East | 2 | 1 | 3 | 6 |
| Israel Central | Middle East | 2 | 1 | 3 | 6 |
| Canada East | Americas | 2 | 1 | 3 | 6 |
| Brazil South | Americas | 2 | 1 | 3 | 6 |
| Chile Central | Americas | 2 | 1 | 3 | 6 |
| Mexico Central | Americas | 2 | 1 | 3 | 6 |
| South Africa North | Africa | 2 | 1 | 3 | 6 |

**Subtotal (Remaining 24):**
- System Nodes: 24 × 2 = **48**
- Validator Nodes: 24 × 1 = **24**
- Total VMs: 24 × 3 = **72**
- Total vCPUs: 72 × 2 = **144**

---

## 🔚 Global Totals (36 Regions)

- **System Nodes:** 24 + 48 = **72** ✅
- **Validator Nodes:** 24 + 24 = **48** ✅
- **Total VMs:** 48 + 72 = **120** ✅
- **Total vCPUs:** 96 + 144 = **240** ✅
- **All regions ≤ 8 vCPUs (< 10 quota limit)** ✅

---

## ⚙️ West Europe Admin-Only Variant

If **West Europe** should be purely for admin/control plane (no workload nodes):

### Re-allocation Strategy

1. **Set West Europe to 0/0** (no System/Validator nodes)
2. **Re-assign its nodes:**
   - +1 System +1 Validator → **North Europe** (8 → 10 vCPUs)
   - +1 System +1 Validator → **Belgium Central** (6 → 10 vCPUs)

### Updated Totals (Admin Variant)

| Region | System Nodes | Validator Nodes | Total vCPUs |
|--------|--------------|-----------------|-------------|
| West Europe | 0 | 0 | 0 (admin only) |
| North Europe | 3 | 3 | 12 ❌ (exceeds quota) |
| Belgium Central | 3 | 2 | 10 ✅ |

**Note:** North Europe would exceed 10 vCPU limit. Alternative allocation needed.

**Better Re-allocation:**
- +1 System +1 Validator → **Belgium Central** (6 → 10 vCPUs)
- +1 System +1 Validator → **Netherlands** (if available) or split:
  - +1 System → **Sweden Central** (6 → 8 vCPUs)
  - +1 Validator → **Poland Central** (6 → 8 vCPUs)

---

## 🎯 Next Steps

1. **Map Kubernetes clusters & pod densities** onto this 36-region layout
2. **Define QBFT/IBFT2 geo-aware committee configuration**:
   - Primary regions (60-70% producing validators)
   - Secondary regions (30-40% backup validators)
   - Latency-optimized consensus rounds
3. **Create Terraform configuration** for all 36 regions
4. **Generate deployment scripts** with region-specific configurations
5. **Implement geo-aware validator selection** logic

---

## 📝 References

- [Azure Regions List](https://learn.microsoft.com/en-us/azure/reliability/regions-list)
- [Cloud for Sovereignty Landing Zone](./CLOUD_FOR_SOVEREIGNTY_LANDING_ZONE.md)
- [Deployment Checklist](./DEPLOYMENT_CHECKLIST.md)
