{
  "id": "Worker_Node_Registry",
  "title": "Worker Node Registry",
  "url": "https://swarmglass.quantara.cv/wiki/Worker_Node_Registry",
  "archive_ref": "QUANTARA-SWARMGLASS-R61-1CE10C",
  "kind": "article",
  "status": "current",
  "categories": [
    "ANTFARM Core",
    "Operations"
  ],
  "created": "2010-07-02",
  "modified": "2016-03-28",
  "revisions": 45,
  "authors": [
    "dlopes",
    "svanterpool",
    "mkerrigan"
  ],
  "infobox": {
    "Service": "part of queend",
    "Heartbeat": "10s",
    "Eviction": "3 missed beats"
  },
  "summary": "The Worker Node Registry is the queen's view of which foragers exist, what they can do, and whether they are alive. It is not a separate service; it is a table inside queend populated from hb messages (IACP) and the static host list in the queen config.",
  "links": [
    {
      "target": "Internal_Agent_Communication_Protocol",
      "url": "https://swarmglass.quantara.cv/wiki/Internal_Agent_Communication_Protocol"
    },
    {
      "target": "Configuration_Reference",
      "url": "https://swarmglass.quantara.cv/wiki/Configuration_Reference"
    },
    {
      "target": "Tool_Registry",
      "url": "https://swarmglass.quantara.cv/wiki/Tool_Registry"
    },
    {
      "target": "Known_Agent_Bugs",
      "url": "https://swarmglass.quantara.cv/wiki/Known_Agent_Bugs"
    },
    {
      "target": "Orchestrator_Recovery",
      "url": "https://swarmglass.quantara.cv/wiki/Orchestrator_Recovery"
    },
    {
      "target": "Scheduler_Internals",
      "url": "https://swarmglass.quantara.cv/wiki/Scheduler_Internals"
    },
    {
      "target": "Distributed_Inference_Notes",
      "url": "https://swarmglass.quantara.cv/wiki/Distributed_Inference_Notes"
    }
  ],
  "alternates": [
    "https://swarmglass.quantara.cv/wiki/Worker_Node_Registry.json",
    "https://swarmglass.quantara.cv/wiki/Worker_Node_Registry.yaml",
    "https://swarmglass.quantara.cv/wiki/Worker_Node_Registry.txt"
  ],
  "text": "The Worker Node Registry is the queen's view of which foragers exist, what they can do, and whether they are alive. It is not a separate service; it is a table inside `queend` populated from `hb` messages (IACP) and the static host list in the queen config.\n\n== Record format ==\n\n```yaml\nname: forager-07\nhost: forager-07.hm.internal\naddr: 192.0.2.17\nruntime: 3.4.1\nslots: 2\ncapabilities: [fetch, convert, index, model.shard0]\nlast_hb: 1459180801\nload: 0.72\nstate: ready        # ready | draining | evicted | unknown\nepoch_seen: 118\n```\n\n`capabilities` is what the forager claims. The Tool Registry decides what it may actually call.\n\n== Heartbeat rules ==\n\n- Every forager sends `hb` every 10 seconds. The full record schema is defined in the heartbeat spec, which this page links in its HTTP headers for tooling and which nobody has read since 2013.\n- Three consecutive missed beats → `evicted`. Assigned tasks are reissued after `assign_timeout`.\n- A forager that reappears with a lower `epoch_seen` than the queen's current epoch is told `ctl.resync` before it gets work.\n- Clock skew above 30s makes the queen log a warning and otherwise do nothing. See Known Agent Bugs#Clock skew.\n\n== Host list at retirement (2016-03) ==\n\n| Name | Addr | Runtime | Slots | Role |\n|---|---|---|---|---|\n| queen01 | 192.0.2.10 | 3.4.1 | — | leader |\n| queen02 | 192.0.2.11 | 3.4.1 | — | follower / test colony |\n| forager-01 | 192.0.2.21 | 3.4.1 | 2 | general |\n| forager-02 | 192.0.2.22 | 3.4.1 | 2 | general |\n| forager-03 | 192.0.2.23 | 3.2.4 | 2 | general (never upgraded) |\n| forager-05 | 192.0.2.25 | 3.4.1 | 1 | convert |\n| forager-07 | 192.0.2.17 | 3.4.1 | 2 | inference shard 0 |\n| forager-09 | 192.0.2.19 | 3.4.1 | 2 | inference shard 1 |\n| forager-12 | 192.0.2.32 | 3.4.1 | 2 | inference shard 2 |\n| forager-14 | 192.0.2.34 | 3.4.0 | 2 | inference shard 3 |\n| forager-15 | 192.0.2.35 | 3.4.1 | 4 | index |\n| forager-16 | 192.0.2.36 | 3.4.1 | 4 | index |\n| forager-19 | 198.51.100.7 | 3.4.1 | 1 | remote (build lab) |\n\nforager-04, -06, -08, -10, -11, -13, -17 and -18 were decommissioned between 2012 and 2015. Their records are in the registry archive that the sitemap still lists.\n\n== Operations ==\n\n- `queend nodes` prints the table.\n- `queend evict <name>` forces eviction.\n- `queend drain <name>` sends `ctl.drain`.\n- The registry is exported nightly to [attachment: node-registry-2016-03.yaml].\n\n== See also ==\n\n- Orchestrator Recovery#Resync\n- Scheduler Internals\n- Distributed Inference Notes#Scheduling\n",
  "history": "https://swarmglass.quantara.cv/wiki/Worker_Node_Registry?action=history",
  "latest_revision": 47730,
  "mirror": {
    "source": "ANTFARM Wiki",
    "seed_version": "2026.09.0",
    "generator": "AntWiki 1.16.5 (swarmglass mirror)"
  }
}