Skip to Content
DocsUse CasesConfiguration Distribution

Configuration Distribution

LODE can encode any structured configuration that needs to be distributed, cached, and verified across multiple nodes.

Pattern

  1. Producer compiles a configuration object into a Vein binary and computes its fingerprint
  2. Binary + fingerprint are transmitted (HTTP, P2P, disk)
  3. Consumer verifies the binary against the fingerprint before using it

Example: Service Config

Schema:

service-config-v1.lode
{ "schema": "lode", "version": 1, "name": "ServiceConfig", "fields": [ { "id": 1, "name": "serviceName", "type": "string", "required": true }, { "id": 2, "name": "enabled", "type": "bool", "required": true }, { "id": 3, "name": "endpoints", "type": "string[]", "required": true }, { "id": 4, "name": "env", "type": "map<string,string>", "required": false } ] }

Source:

{ "serviceName": "inference-gateway", "enabled": true, "endpoints": [ "https://node-1.example.com", "https://node-2.example.com", "https://node-3.example.com" ], "env": { "LOG_LEVEL": "info", "MAX_BATCH_SIZE": "32" } }

Compile and distribute:

$ lodec compile config.json -s service-config-v1.lode -o config.vein Compiled config.json config.vein (142 bytes) Fingerprint: b7e3d9a1...

Cache Key Pattern

Use the fingerprint as a cache key to avoid re-processing identical configurations:

const hash = fingerprint(config); const cached = cache.get(hash); if (cached) return cached; const vein = compile(config, schema); cache.set(hash, vein); return vein;

Audit Trail

Record fingerprints alongside timestamps to track configuration changes:

2026-03-14T10:00:00Z b7e3d9a1... service-config deployed 2026-03-14T11:30:00Z c4f2a8e3... service-config updated (added node-4) 2026-03-14T14:15:00Z b7e3d9a1... service-config rolled back to previous

The third entry has the same fingerprint as the first — the rollback restored the exact same configuration.

Last updated on