gNode

Geodineum 4-Tier Topology Architecture

Status: Active as of 2026-04-15. All schemas frozen for Chapter 1.

Overview

Geodineum uses geometric service discovery across 4 topology tiers. Each tier has its own dimension schema tailored to its query patterns, but all share the same spatial hash infrastructure (Lua + Rust + ValKey).

Galaxy (20D)        — federation of Geodineum Constellations
  └── Constellation (20D) — nodes within a WireGuard VPN cluster
        └── Service (30D)     — services within a site (per-site)
              └── Tool (16D)      — base ecosystem components (global)

Tier Summary

Tier Dims Discovery Storage Keyspace Schema
Service 30 25 5 {service_id}:gnode:services:* service_schema.yaml
Tool 16 12 4 {ecosystem}:gnode:services:* tool_schema.yaml
Constellation 20 16 4 constellation:{cid}:topology:* constellation_schema.yaml
Galaxy 20 16 4 galaxy:topology:* galaxy_schema.yaml

ValKey Storage Format

Each topology stores data in distributed keys (NOT a single JSON blob):

{service_id}:gnode:services:entities    — HASH: entity_id → entity JSON
{service_id}:gnode:services:z_order     — ZSET: entity_id scored by dim 16
{service_id}:gnode:services:meta        — HASH: topology metadata
{service_id}:gnode:services:voxel:{bk}  — SET: entity IDs per spatial bucket

Service Tier — 30D

The production topology for per-site service discovery. 25 discovery dimensions used for spatial hash bucket keys, 5 storage-only for visualization and metadata.

Layers:

Registration: gnode-daemon register-tools --tier service --site {service_id}

Tool Tier — 16D

Static registry of the ~10 base ecosystem components. Visual coordinates (12-14) encode a dependency pyramid computed from the depends_on graph.

Pyramid hierarchy (z=1.0 at top):

Level 0: gMath, ValKey                    (z=1.00)
Level 1: gNode, gNode-Client              (z=0.75)
Level 2: gNode-CMS, gCore, COMMS, BAK     (z=0.50)
Level 3: gTemplate                         (z=0.25)
Level 4: gCube                             (z=0.00)

Layers:

Registration: gnode-daemon register-tools --tier tool Data source: Geodineum/config/ecosystem_tools.yaml

Constellation Tier — 20D (planned)

Node-level management within a WireGuard VPN constellation. Not yet wired to registration pipeline.

Key dimensions: node_role, valkey_mode, cpu_tier, memory_tier, aggregate_load, node_health, data_residency, specialization.

Galaxy Tier — 20D (Future)

Federation-level discovery of Geodineum Constellations. Schema exists as design artifact.

Key dimensions: offering_primary, trust_level, pricing_tier, constellation_scale, geography_region, availability_sla.

Evolution Labels

Services receive evolutionary labels based on relative Stream Contribution Score (SCS):

Percentile Label Meaning
0-15% Claim Newly registered, minimal activity
15-40% Outpost Low but consistent activity
40-70% Settlement Steady contributor
70-90% City High contributor
90-99% Metropole Major hub
Top 1 Capital Highest ecosystem contributor

Labels are schema-driven — defined in daemon/config/evolution_schema.yaml. The Lua computation function has been removed; nothing currently computes these labels at runtime, the schema is retained as the label definition. Purely display — no operational impact.

Cross-Tier Shared Values

shared_values.yaml maintains identical value→coordinate mappings for concepts that appear across tiers (version, contract_stability, data_residency, aggregate_load, registration_order).

DTAP Environment Detection

dtap_schema.yaml maps domain prefixes to environments:

Schema-driven with i18n aliases (Dutch: acceptatie → acceptance).

Registration CLI

# Register all base components (tool pyramid)
gnode-daemon --redis-user gnode_daemon register-tools --tier tool

# Register gCore managers for a site (service topology)
gnode-daemon --redis-user gnode_daemon register-tools --tier service --site example_site

# Dry run (preview without writing)
gnode-daemon --redis-user gnode_daemon register-tools --tier tool --dry-run

Files

File Purpose
daemon/config/service_schema.yaml Service tier 30D dimension definitions
daemon/config/tool_schema.yaml Tool tier 16D dimension definitions
daemon/config/constellation_schema.yaml Constellation tier 20D (planned)
daemon/config/galaxy_schema.yaml Galaxy tier 20D (future)
daemon/config/shared_values.yaml Cross-tier value mappings
daemon/config/evolution_schema.yaml Lifecycle label configuration
daemon/config/dtap_schema.yaml DTAP prefix→environment mapping
daemon/config/capability_schema.yaml REMOVED — was the legacy 23D schema, replaced by service_schema.yaml pre-launch
daemon/functions/gnode_topology.lua 30D dimension tables + translation
daemon/functions/gnode_topo.lua Topology CRUD + evolution labels
daemon/src/tool_registration.rs Registration pipeline + pyramid layout