Skip to content

Latest commit

Β 

History

History
567 lines (462 loc) Β· 34.2 KB

File metadata and controls

567 lines (462 loc) Β· 34.2 KB

MicroTraderX Architecture

Visual diagrams showing the complete system architecture, inheritance patterns, and deployment flows.

ConfigHub Documentation: For detailed explanations of ConfigHub concepts (spaces, units, workers, upstream/downstream inheritance, push-upgrade, lateral promotion), see docs.confighub.com. This document focuses on MicroTraderX-specific architecture.


Table of Contents

  1. Complete System Architecture
  2. 3-Region Architecture
  3. Inheritance Flow
  4. Push-Upgrade Pattern
  5. Emergency Lateral Promotion
  6. ConfigHub to Kubernetes Flow

Complete System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          CONFIGHUB STRUCTURE                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                      traderx-base                                  β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”‚  β”‚
β”‚  β”‚  β”‚ reference-data-base  β”‚  β”‚ trade-service-base   β”‚              β”‚  β”‚
β”‚  β”‚  β”‚ (Market data config) β”‚  β”‚ (Trading engine)     β”‚              β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚           β”‚                                    β”‚                         β”‚
β”‚           β”‚ push-upgrade                       β”‚ push-upgrade            β”‚
β”‚           β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
β”‚           β”‚                β”‚                   β”‚              β”‚         β”‚
β”‚           β–Ό                β–Ό                   β–Ό              β–Ό         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ traderx-dev    β”‚ β”‚ traderx-stagingβ”‚ β”‚ prod-us      β”‚ β”‚ prod-eu β”‚...β”‚
β”‚  β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚         β”‚   β”‚
β”‚  β”‚ β”‚ ref-data ─┼ β”‚ β”‚ β”‚ ref-data ─┼ β”‚ β”‚ β”‚ ref-data β”‚ β”‚ β”‚         β”‚   β”‚
β”‚  β”‚ β”‚ (β†’base)    β”‚ β”‚ β”‚ β”‚ (β†’base)    β”‚ β”‚ β”‚ β”‚ (β†’base)  β”‚ β”‚ β”‚         β”‚   β”‚
β”‚  β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚         β”‚   β”‚
β”‚  β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚         β”‚   β”‚
β”‚  β”‚ β”‚ trade-svc ─┼ β”‚ β”‚ β”‚ trade-svc ─┼ β”‚ β”‚ β”‚trade-svc β”‚ β”‚ β”‚         β”‚   β”‚
β”‚  β”‚ β”‚ (β†’base)    β”‚ β”‚ β”‚ β”‚ (β†’base)    β”‚ β”‚ β”‚ β”‚ (β†’base)  β”‚ β”‚ β”‚         β”‚   β”‚
β”‚  β”‚ β”‚ replicas:1 β”‚ β”‚ β”‚ β”‚ replicas:2 β”‚ β”‚ β”‚ β”‚replicas:3β”‚ β”‚ β”‚         β”‚   β”‚
β”‚  β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚         β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

                                    ⬇ ConfigHub Workers

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         KUBERNETES CLUSTERS                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚  dev cluster   β”‚ β”‚ staging clusterβ”‚ β”‚  us cluster  β”‚ β”‚  eu cluster β”‚β”‚
β”‚  β”‚  namespace:    β”‚ β”‚  namespace:    β”‚ β”‚  namespace:  β”‚ β”‚  namespace: β”‚β”‚
β”‚  β”‚  traderx-dev   β”‚ β”‚traderx-staging β”‚ β”‚traderx-prod- β”‚ β”‚traderx-prod-β”‚β”‚
β”‚  β”‚                β”‚ β”‚                β”‚ β”‚      us      β”‚ β”‚     eu      β”‚β”‚
β”‚  β”‚  replicas: 1   β”‚ β”‚  replicas: 2   β”‚ β”‚  replicas: 3 β”‚ β”‚ replicas: 5 β”‚β”‚
β”‚  β”‚                β”‚ β”‚                β”‚ β”‚  (NYSE vol)  β”‚ β”‚ (Peak vol)  β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Concepts: See docs.confighub.com for base spaces, inheritance, and push-upgrade. MicroTraderX demonstrates regional customization where each region has unique replica counts (US:3, EU:5, Asia:2) preserved during upgrades.


3-Region Architecture

The trading platform scales based on market activity in each region:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        GLOBAL TRADING PLATFORM                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    US Region (NYSE)          EU Region (London)      Asia Region (Tokyo)
    ════════════════          ══════════════════      ═══════════════════

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  traderx-prod-usβ”‚       β”‚ traderx-prod-eu  β”‚      β”‚traderx-prod-asiaβ”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€       β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€      β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                 β”‚       β”‚                  β”‚      β”‚                 β”‚
β”‚ reference-data  β”‚       β”‚ reference-data   β”‚      β”‚ reference-data  β”‚
β”‚   replicas: 1   β”‚       β”‚   replicas: 1    β”‚      β”‚   replicas: 1   β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”     β”‚       β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”      β”‚      β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚   β”‚ Pod 1 β”‚     β”‚       β”‚   β”‚ Pod 1 β”‚      β”‚      β”‚   β”‚ Pod 1 β”‚     β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚       β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚      β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚                 β”‚       β”‚                  β”‚      β”‚                 β”‚
β”‚ trade-service   β”‚       β”‚ trade-service    β”‚      β”‚ trade-service   β”‚
β”‚   replicas: 3   β”‚       β”‚   replicas: 5    β”‚      β”‚   replicas: 2   β”‚
β”‚   β”Œβ”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β” β”‚       β”‚ β”Œβ”€β”¬β”€β”¬β”€β”¬β”€β”¬β”€β”     β”‚      β”‚   β”Œβ”€β”€β”€β”¬β”€β”€β”€β”     β”‚
β”‚   β”‚P1 β”‚P2 β”‚P3 β”‚ β”‚       β”‚ β”‚1β”‚2β”‚3β”‚4β”‚5β”‚     β”‚      β”‚   β”‚P1 β”‚P2 β”‚     β”‚
β”‚   β””β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”˜ β”‚       β”‚ β””β”€β”΄β”€β”΄β”€β”΄β”€β”΄β”€β”˜     β”‚      β”‚   β””β”€β”€β”€β”΄β”€β”€β”€β”˜     β”‚
β”‚                 β”‚       β”‚                  β”‚      β”‚                 β”‚
β”‚ Trading Hours:  β”‚       β”‚ Trading Hours:   β”‚      β”‚ Trading Hours:  β”‚
β”‚ 9:30am - 4pm ET β”‚       β”‚ 8am - 4:30pm GMT β”‚      β”‚ 9am - 3pm JST   β”‚
β”‚ Normal volume   β”‚       β”‚ PEAK volume      β”‚      β”‚ Overnight vol   β”‚
β”‚                 β”‚       β”‚ (LON + FRA)      β”‚      β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

     US-EAST-1                 EU-WEST-1              AP-NORTHEAST-1
    (Virginia)                 (Ireland)                (Tokyo)

Regional Scaling Logic:

  • US: 3 replicas - NYSE normal trading hours
  • EU: 5 replicas - Combined London + Frankfurt exchanges (highest volume)
  • Asia: 2 replicas - Tokyo overnight/after-hours trading (lowest volume)

Why This Matters:

  • Cost optimization: Pay only for needed capacity
  • Performance: Right-sized for actual trading volume
  • Business logic: Reflects real-world market activity patterns

Inheritance Flow

This diagram shows how configuration inherits from base to regions:

                              traderx-base
                                   β”‚
                     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                     β”‚                           β”‚
                  reference-data-base      trade-service-base
                     β”‚                           β”‚
           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
           β”‚         β”‚         β”‚       β”‚         β”‚         β”‚
           β–Ό         β–Ό         β–Ό       β–Ό         β–Ό         β–Ό
        us-ref    eu-ref   asia-ref  us-trade eu-trade asia-trade
     (inherits) (inherits)(inherits)(inherits)(inherits)(inherits)


INHERITANCE PROPERTIES:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Base Unit                                                         β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ image: trade-service:v1                                      β”‚ β”‚
β”‚ β”‚ algorithm: standard                                          β”‚ β”‚
β”‚ β”‚ timeout: 30s                                                 β”‚ β”‚
β”‚ β”‚ replicas: 1  ← Default (can be overridden)                  β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β”‚ upstream-unit link
                              β”‚
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β”‚                 β”‚                 β”‚
            β–Ό                 β–Ό                 β–Ό
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚ US Region      β”‚ β”‚ EU Region      β”‚ β”‚ Asia Region    β”‚
   β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
   β”‚ image: v1 βœ“    β”‚ β”‚ image: v1 βœ“    β”‚ β”‚ image: v1 βœ“    β”‚
   β”‚ algorithm: βœ“   β”‚ β”‚ algorithm: βœ“   β”‚ β”‚ algorithm: βœ“   β”‚
   β”‚ timeout: 30s βœ“ β”‚ β”‚ timeout: 30s βœ“ β”‚ β”‚ timeout: 30s βœ“ β”‚
   β”‚ replicas: 3 ⚑ β”‚ β”‚ replicas: 5 ⚑ β”‚ β”‚ replicas: 2 ⚑ β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        Override         Override         Override

Legend:

  • βœ“ = Inherited from base
  • ⚑ = Local override (preserved during push-upgrade)

How It Works:

  1. Regional units have upstream-unit pointing to base
  2. Most properties inherit automatically
  3. Local overrides (like replicas) are preserved
  4. Updates to base flow to regions via push-upgrade

Push-Upgrade Pattern

The killer feature that beats traditional config management:

BEFORE PUSH-UPGRADE:
═══════════════════

traderx-base/trade-service
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ algorithm: standard      β”‚
β”‚ image: v1                β”‚
β”‚ timeout: 30s             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            β”‚
            β”‚ upstream-unit
            β”‚
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”
    β”‚       β”‚       β”‚
    β–Ό       β–Ό       β–Ό
  β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”
  β”‚ US β”‚ β”‚ EU β”‚ β”‚Asiaβ”‚
  β”‚ v1 β”‚ β”‚ v1 β”‚ β”‚ v1 β”‚
  β”‚ r:3β”‚ β”‚ r:5β”‚ β”‚ r:2β”‚
  β””β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”˜


STEP 1: Update Base
════════════════════

# Update base unit via stdin (correct pattern)
echo '{"algorithm":"quantum","image":"v2","timeout":"60s"}' | \
  cub unit update trade-service --space traderx-base --patch --from-stdin

traderx-base/trade-service
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ algorithm: QUANTUM ⚑    β”‚  ← Changed
β”‚ image: V2 ⚑             β”‚  ← Changed
β”‚ timeout: 60s ⚑          β”‚  ← Changed
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            β”‚
            β”‚ (not yet propagated)
            β”‚
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”
    β”‚       β”‚       β”‚
    β–Ό       β–Ό       β–Ό
  β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”
  β”‚ US β”‚ β”‚ EU β”‚ β”‚Asiaβ”‚
  β”‚ v1 β”‚ β”‚ v1 β”‚ β”‚ v1 β”‚  ← Still old!
  β”‚ r:3β”‚ β”‚ r:5β”‚ β”‚ r:2β”‚
  β””β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”˜


STEP 2: Push-Upgrade
═══════════════════════

cub unit update --upgrade --patch --space 'traderx-prod-*'

traderx-base/trade-service
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ algorithm: quantum       β”‚
β”‚ image: v2                β”‚
β”‚ timeout: 60s             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            β”‚
            β”‚ push-upgrade ⚑⚑⚑
            β”‚
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”
    β”‚       β”‚       β”‚
    β–Ό       β–Ό       β–Ό
  β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”
  β”‚ US β”‚ β”‚ EU β”‚ β”‚Asiaβ”‚
  β”‚ V2 β”‚ β”‚ V2 β”‚ β”‚ V2 β”‚  ← Algorithm updated! βœ“
  β”‚ r:3β”‚ β”‚ r:5β”‚ β”‚ r:2β”‚  ← Replicas preserved! βœ“
  β””β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”˜


AFTER PUSH-UPGRADE:
═══════════════════

All regions now have:
βœ“ New algorithm (quantum)
βœ“ New image version (v2)
βœ“ New timeout (60s)
βœ“ ORIGINAL replica counts (3, 5, 2)

US Region:               EU Region:              Asia Region:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ algorithm: βœ“    β”‚     β”‚ algorithm: βœ“    β”‚     β”‚ algorithm: βœ“    β”‚
β”‚ image: v2 βœ“     β”‚     β”‚ image: v2 βœ“     β”‚     β”‚ image: v2 βœ“     β”‚
β”‚ timeout: 60s βœ“  β”‚     β”‚ timeout: 60s βœ“  β”‚     β”‚ timeout: 60s βœ“  β”‚
β”‚ replicas: 3 ⚑  β”‚     β”‚ replicas: 5 ⚑  β”‚     β”‚ replicas: 2 ⚑  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Result: One command updates all three regions while preserving regional replica counts. See push-upgrade documentation for details.


Emergency Lateral Promotion

When you can't follow the normal dev β†’ staging β†’ prod flow:

NORMAL PROMOTION FLOW:
═══════════════════════

traderx-base
     β”‚
     β”œβ”€β†’ traderx-dev
     β”‚        β”‚
     β”‚        ↓ test & promote
     β”œβ”€β†’ traderx-staging
     β”‚        β”‚
     β”‚        ↓ test & promote
     β”œβ”€β†’ traderx-prod-us
     β”‚        β”‚
     β”‚        ↓ test & promote
     β”œβ”€β†’ traderx-prod-eu
     β”‚        β”‚
     β”‚        ↓ test & promote
     └─→ traderx-prod-asia

Time: ~2-3 hours for full pipeline


EMERGENCY SCENARIO:
═══════════════════════

Time: 6:00am GMT - EU markets open
Issue: Critical trading bug discovered in EU

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ EU discovers bug: trades executing at wrong price!           β”‚
β”‚ Asia markets open in 2 hours                                 β”‚
β”‚ US markets closed (overnight)                                β”‚
β”‚ CAN'T WAIT for US testing!                                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


LATERAL PROMOTION (Emergency Bypass):
═══════════════════════════════════════

Step 1: Fix directly in EU (6:05am GMT)
─────────────────────────────────────────
cub run set-env-var --env-var CIRCUIT_BREAKER=true \
  --unit trade-service --space traderx-prod-eu

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ traderx-prod-euβ”‚
β”‚ FIXED! βœ“       β”‚
β”‚ CIRCUIT_BREAKERβ”‚
β”‚ = true         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


Step 2: Lateral promotion to Asia (6:10am GMT)
───────────────────────────────────────────────
# Skip US (closed), go directly EU β†’ Asia

cub unit update trade-service --space traderx-prod-asia \
  --merge-unit traderx-prod-eu/trade-service

     traderx-prod-eu  ──────→  traderx-prod-asia
     (FIXED 6:05am)            (FIXED 6:10am)
            β”‚                         β”‚
            β”‚                         β”‚
            β–Ό                         β–Ό
    EU markets safe          Asia markets safe
      6:05am GMT               8:00am JST


Step 3: Backfill US when safe (6:00pm GMT)
───────────────────────────────────────────
# US markets closed, safe to update

cub unit update trade-service --space traderx-prod-us \
  --merge-unit traderx-prod-eu/trade-service

     traderx-prod-eu  ──────→  traderx-prod-us
     (FIXED 6:05am)            (BACKFILLED 6pm)


Step 4: Update base for future (next day)
──────────────────────────────────────────
cub unit update trade-service --space traderx-base \
  --merge-unit traderx-prod-eu/trade-service


TIMELINE VISUALIZATION:
═══════════════════════

Time    Event                          Action
─────   ──────────────────────────     ─────────────────────────────
6:00am  EU bug discovered              Emergency!
6:05am  Fix applied to EU              EU now safe βœ“
6:10am  EU β†’ Asia (lateral)            Asia now safe βœ“
6:00pm  EU β†’ US (backfill)             US updated (markets closed)
Next    US β†’ base (standard flow)      Base updated for future


FLOW DIAGRAM:
═════════════

Normal:     dev β†’ staging β†’ us β†’ eu β†’ asia

Emergency:              β”Œβ”€β”€β†’ asia  (immediate)
                        β”‚
                        eu ──→ us   (backfill when safe)
                        β”‚
                        └──→ base   (fix root cause)

Why This Matters for MicroTraderX: Lateral promotion lets EU emergency fixes reach Asia before Tokyo markets open (2 hour window), while US backfill happens safely during market close. See lateral promotion documentation for details.


ConfigHub to Kubernetes Flow

How configurations become running pods:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    DEVELOPER WORKFLOW                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Step 1: Create Structure (ConfigHub only)
──────────────────────────────────────────

./setup-structure 7

Creates:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ConfigHub API                                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Spaces:                                          β”‚
β”‚   - traderx-base                                 β”‚
β”‚   - traderx-dev, traderx-staging                β”‚
β”‚   - traderx-prod-us, -eu, -asia                 β”‚
β”‚                                                   β”‚
β”‚ Units (per space):                               β”‚
β”‚   - reference-data (with upstream-unit)          β”‚
β”‚   - trade-service (with upstream-unit)           β”‚
β”‚                                                   β”‚
β”‚ Relationships:                                   β”‚
β”‚   - base β†’ dev, staging, prod-* (inheritance)    β”‚
β”‚   - Regional overrides (replicas)                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

At this point: NO Kubernetes resources exist!
Just pure configuration in ConfigHub.


Step 2: Deploy to Kubernetes
─────────────────────────────

./deploy 7

For each space (e.g., traderx-prod-us):

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 1. Install Worker                                β”‚
β”‚    cub worker install worker-us                  β”‚
β”‚       --space traderx-prod-us                    β”‚
β”‚       --wait                                     β”‚
β”‚                                                   β”‚
β”‚    Creates:                                      β”‚
β”‚    β€’ Kubernetes Deployment (worker pod)          β”‚
β”‚    β€’ ServiceAccount + RBAC                       β”‚
β”‚    β€’ Watches ConfigHub for changes               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 2. Apply Units                                   β”‚
β”‚    cub unit apply --space traderx-prod-us        β”‚
β”‚                   --where "*"                    β”‚
β”‚                                                   β”‚
β”‚    Worker reads ConfigHub units and creates:     β”‚
β”‚    β€’ Namespace: traderx-prod-us                  β”‚
β”‚    β€’ Deployment: reference-data                  β”‚
β”‚    β€’ Deployment: trade-service (replicas: 3)     β”‚
β”‚    β€’ Services, ConfigMaps, etc.                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


DETAILED FLOW FOR ONE REGION (US):
═══════════════════════════════════

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  ConfigHub   β”‚         β”‚    Worker    β”‚         β”‚  Kubernetes  β”‚
β”‚     API      β”‚         β”‚   (in K8s)   β”‚         β”‚   API Server β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚                        β”‚                        β”‚
       β”‚  1. cub worker install β”‚                        β”‚
       β”‚  ─────────────────────>β”‚                        β”‚
       β”‚                        β”‚ 2. Create worker pod   β”‚
       β”‚                        β”‚ ──────────────────────>β”‚
       β”‚                        β”‚                        β”‚
       β”‚                        β”‚ 3. Worker starts       β”‚
       β”‚                        β”‚<───────────────────────│
       β”‚                        β”‚                        β”‚
       β”‚  4. cub unit apply     β”‚                        β”‚
       β”‚  ─────────────────────>β”‚                        β”‚
       β”‚                        β”‚                        β”‚
       β”‚  5. Fetch units from   β”‚                        β”‚
       β”‚     traderx-prod-us    β”‚                        β”‚
       β”‚<───────────────────────│                        β”‚
       β”‚                        β”‚                        β”‚
       β”‚  6. Return unit configsβ”‚                        β”‚
       β”‚  ─────────────────────>β”‚                        β”‚
       β”‚                        β”‚                        β”‚
       β”‚                        β”‚ 7. Create namespace    β”‚
       β”‚                        β”‚ ──────────────────────>β”‚
       β”‚                        β”‚                        β”‚
       β”‚                        β”‚ 8. Create deployments  β”‚
       β”‚                        β”‚    (reference-data,    β”‚
       β”‚                        β”‚     trade-service)     β”‚
       β”‚                        β”‚ ──────────────────────>β”‚
       β”‚                        β”‚                        β”‚
       β”‚                        β”‚ 9. Pods scheduled      β”‚
       β”‚                        β”‚<───────────────────────│
       β”‚                        β”‚                        β”‚
       β”‚ 10. Update live-state  β”‚                        β”‚
       β”‚<───────────────────────│                        β”‚
       β”‚                        β”‚                        β”‚
       β”‚                        β”‚ ∞ Watch for changes    β”‚
       β”‚                        β”‚<──────────────────────>β”‚
       β”‚                        β”‚                        β”‚

Worker Details: See worker documentation for installation, RBAC, live-state reporting, and reconciliation. In MicroTraderX, each regional cluster has its own worker managing that space.


Multi-Cluster Deployment

Real-world scenario with separate clusters per region:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         CONFIGHUB (Central)                         β”‚
β”‚                        https://confighub.com                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                      β”‚
β”‚  traderx-base    traderx-dev    traderx-staging                    β”‚
β”‚  traderx-prod-us    traderx-prod-eu    traderx-prod-asia           β”‚
β”‚                                                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                      β”‚                      β”‚
        β”‚ Worker pulls         β”‚ Worker pulls         β”‚ Worker pulls
        β”‚ traderx-prod-us      β”‚ traderx-prod-eu      β”‚ traderx-prod-asia
        β”‚                      β”‚                      β”‚
        β–Ό                      β–Ό                      β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ US Cluster   β”‚       β”‚ EU Cluster   β”‚      β”‚ Asia Cluster β”‚
β”‚ us-east-1    β”‚       β”‚ eu-west-1    β”‚      β”‚ ap-northeast β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€       β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€      β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚              β”‚       β”‚              β”‚      β”‚              β”‚
β”‚ worker-us    β”‚       β”‚ worker-eu    β”‚      β”‚ worker-asia  β”‚
β”‚   ↓          β”‚       β”‚   ↓          β”‚      β”‚   ↓          β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚       β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚      β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚Namespace β”‚ β”‚       β”‚ β”‚Namespace β”‚ β”‚      β”‚ β”‚Namespace β”‚ β”‚
β”‚ β”‚traderx-  β”‚ β”‚       β”‚ β”‚traderx-  β”‚ β”‚      β”‚ β”‚traderx-  β”‚ β”‚
β”‚ β”‚ prod-us  β”‚ β”‚       β”‚ β”‚ prod-eu  β”‚ β”‚      β”‚ β”‚prod-asia β”‚ β”‚
β”‚ β”‚          β”‚ β”‚       β”‚ β”‚          β”‚ β”‚      β”‚ β”‚          β”‚ β”‚
β”‚ β”‚ Pods: 3  β”‚ β”‚       β”‚ β”‚ Pods: 5  β”‚ β”‚      β”‚ β”‚ Pods: 2  β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚       β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚      β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚              β”‚       β”‚              β”‚      β”‚              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

MicroTraderX Benefit: Single ConfigHub control plane manages all 3 regional clusters, enabling global updates via push-upgrade while each region operates independently with local workers.


Summary

MicroTraderX demonstrates ConfigHub patterns applied to a multi-region trading platform:

  • Base β†’ Regional inheritance with US:3, EU:5, Asia:2 replica customization preserved
  • Push-upgrade propagates algorithm/image updates across all regions
  • Lateral promotion for EU emergency fixes reaching Asia before Tokyo market open
  • Multi-cluster deployment with one worker per regional cluster

For detailed explanations of ConfigHub concepts, see docs.confighub.com.