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) |
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
- Drop the pagerank SLO from the benchmark: it is ratified in Step 3.4 with a recorded measurement; removing it is a spec change only Mohamed can make.
- Point the benchmark at the test node and install MAGE only there: the script deliberately measures production; the SLO is a production property.
- Skip or environment-gate the test: forbidden by RUL-002.
- Implement pagerank in Cypher or Python on the node: a different procedure with different performance is not the ratified MAGE pass.
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.
Related ADRs
No other ADR is named in this record.
Rulings cited
- RUL-002: RUL-002 — No mocking — real infra, real implementations only
Specs cited
None (or no spec page exists for the ones named).