CapacitySnapshot platform.capacity-snapshot@1

Generated at from openvibe-contracts v0.79.0 and openvibe-sdk v0.25.0.

Version
1.0.0
Owner
network
Visibility
first-party
Status
active
Compatibility
backward
Decision
ADR-034
Schema
https://openvibe.network/contracts/platform/capacity-snapshot.v1.json

A node's reported capacity at one moment, sent by its Host agent (roadmap WS-Z9 task 1).

Fields

FieldTypeRequiredDescriptionConstraints
node_idstringyes
cellstring
capacityobjectyes
  • no other fields
capacity.cpuobject
  • no other fields
capacity.cpu.utilizationnumber
  • minimum 0
  • maximum 1
capacity.cpu.available_coresnumber
  • minimum 0
capacity.memoryobject
  • no other fields
capacity.memory.utilizationnumber
  • minimum 0
  • maximum 1
capacity.memory.available_mbnumber
  • minimum 0
capacity.networkobject
  • no other fields
capacity.network.ingress_mbpsnumber
  • minimum 0
capacity.network.egress_mbpsnumber
  • minimum 0
capacity.network.available_mbpsnumber
  • minimum 0
capacity.diskobject
  • no other fields
capacity.disk.iops_availablenumber
  • minimum 0
capacity.disk.scratch_gbnumber
  • minimum 0
capacity.disk.utilizationnumber
  • minimum 0
  • maximum 1
capacity.gpuobject
  • no other fields
capacity.gpu.typestring
capacity.gpu.vram_free_mbnumber
  • minimum 0
capacity.gpu.utilizationnumber
  • minimum 0
  • maximum 1
capacity.workersobjectfree worker slots by kind (browser, ffmpeg, ai, …)
capacity.queuesobjectqueue depth and age by name
capacity.event_loop_lag_msnumber
  • minimum 0
servicesobject
reported_atstringyes
  • format date-time

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: node
{
  "node_id": "ovh-oregon-1",
  "cell": "wnam-1",
  "capacity": {
    "cpu": {
      "utilization": 0.37
    },
    "memory": {
      "utilization": 0.51
    },
    "event_loop_lag_ms": 4
  },
  "services": {
    "chat": {
      "instances": 1,
      "active_requests": 12,
      "p95_ms": 12.8,
      "error_rate": 0.0003
    }
  },
  "reported_at": "2026-09-28T23:00:00Z"
}
Rejected: utilization-over-one
{
  "node_id": "n",
  "capacity": {
    "cpu": {
      "utilization": 1.5
    }
  },
  "reported_at": "2026-09-28T23:00:00Z"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('platform.capacity-snapshot@1', value);   // { valid, errors: [{ path, message }] }