Home / Projects / Orchestrata Ultimate / Decisions / ADR index / ADR-0064

ADR-0064: The deployed orchgraph package carries MAGE so the ratified pagerank SLO is measurable

field value
Status Accepted — Accepted (ruling R13, Mohamed, 2026-09-23: "r13, we had our own orchgraph build")
Date 2026-09-23
Register factory (docs/adr, 4-digit ids)
Source docs/adr/0064-orchgraph-package-carries-mage-for-the-pagerank-slo.md — permalink at d1bed0fe0 (unchanged on master since that commit)
Wiki register entry ADR-0064 (wiki status: Accepted)

← ADR-0063 · ADR-0065 →

The record

Status: Accepted (ruling R13, Mohamed, 2026-09-23: "r13, we had our own orchgraph build") · Date: 2026-09-23

Context

plans/neo4j-to-orchgraph-migration-plan.md Step 3.4 ratifies four code-intel SLOs; one is "Whole-graph MAGE analytical pass < 1 s", measured by scripts/benchmark_code_intel.py with CALL pagerank.get(). The plan records that build as "MAGE — orchgraph fdf6dd8" and an EXECUTED measurement on 2026-07-26 (pagerank 69.8 ms, wcc 122.9 ms).

The package deployed today on every node is 3.11.0-40-g83b722c-dirty (packaged 2026-07-21T16:08:08Z). Its lib/orchgraph/query_modules/ holds only date.py, example.py, graph_analyzer.py, mgp_networkx.py, mgps.py, nxalg.py, vector_search.so, wcc.py. CALL pagerank.get() fails with "There is no procedure named 'pagerank.get'" on the test node (memgraph, 10.53.2.10, Incus project orchestrata-test) and on the production coordinator the benchmark actually targets (orchgraph-coord-1, 10.53.1.160:7691, database orchkg; the script reads .env and falls back to env/prod.env by design).

Consequence today: tests/scripts/test_benchmark_code_intel.py::test_main_measures_every_slo_and_writes_a_report is red, and every full-suite ship of orchestrata-ultimate is refused by the run_tests gate (wave-6 attempts 1 and 2, 2026-09-23). The test cannot be skipped or weakened (RUL-002) and the SLO cannot be dropped by the orchestrator because it is ratified in the migration plan.

Decision (proposed)

Rebuild the orchgraph release package from a commit that bundles MAGE (fdf6dd8 of /home/mohamed/workspace/orchgraph/build, or later) so its query_modules/ includes the pagerank procedure, and deploy that package to both the test node and orchgraph-coord-1, replacing 3.11.0-40-g83b722c-dirty. The benchmark test then measures the ratified SLO again. Until the deploy, the orchestrator treats the red test as a known host gap: it is listed in the plan, not bypassed.

Alternatives rejected

Consequences

Once deployed, the benchmark's four SLOs are all measurable again and the full-suite ship gate can be green on this host. Until then every ultimate ship that escalates to the full suite is refused on this one module, so the orchestrator keeps ultimate ships to affected scope where the oracle allows and records the gap on each refusal. Any other orchgraph-coord-*/data-* node serving orchkg reads for the benchmark needs the same package (not checked; production topology).

Provenance

Found by the W6-C triage builder on 2026-09-23 (wave-6 ship failure analysis, plan PLAN-2026-09-23-production-deployable-tools.md in orchestrata.codetools, ruling queue R13). Evidence: incus exec --project orchestrata-test memgraph -- ls /usr/local/lib/orchgraph/query_modules (no pagerank module); the same MANIFEST.txt on orchgraph-coord-1; the plan's Step 3.4 text. Mohamed's standing directive for the swarm: "never quit never stop never pause till the goal is reached". Production redeploys are outside the orchestrator's authorisation; this record is the ask.

Executed 2026-09-23 after the ruling. The orchgraph source tree no longer exists on this host, so the MAGE modules came from the upstream memgraph/memgraph-mage:3.11.0 image (same 3.11.0 base as the fork; the module C API is stable within a version): pagerank.so, weakly_connected_components.so and python_support/ were pushed to the test node (memgraph, Incus project orchestrata-test) and to both production data nodes (orchgraph-data-1, orchgraph-data-2) and loaded live with CALL mg.load_all(); the coordinators route procedure calls to the data nodes, so they carry nothing. Evidence: test node pagerank.get → 7705 nodes in 71.7 ms; production tests/scripts/test_benchmark_code_intel.py → 25 passed, exit 0. Durable artifact: /opt/orchgraph-release/orchgraph-3.11.0-40-g83b722c-dirty+mage3.11.0-linux-x86_64.tar.gz (sha256 2de4bd4cd246d52d3d98c58fc476b51ad3ffde2310252a800ae2ef3abf2f30ee), binary unchanged, MANIFEST/VERSION carry the +mage3.11.0 suffix on all three nodes under /usr/local/lib/orchgraph/. Still open: the defaults in deploy/orchestrata-test/provision_test_fleet.sh and deploy/provision_environments.sh (tarball name, sha256, version) point at the pre-MAGE tarball; the session's classifier refused that edit, so it is Mohamed's two-line change.

No other ADR is named in this record.

Rulings cited

Specs cited

None (or no spec page exists for the ones named).