Skip to main content

PERF-ONT-002 — Serve a bounded object graph

FieldValue
StatusOpen finding; source-verified; scale test pending
SeverityHigh
Componentssparqd/oqullus, sparqd/ontology, sparqd/bff-api
Associated issuesNot opened pending finding review

Concrete observed case​

Oqullus reads the first object-summary page and then one detail per object. Relationships resolve by target name only inside that fetched set. A target at position 51 is silently missing; a failed detail becomes a blank isolated card. The browser builds every node and edge, runs two Dagre layouts plus collision passes, searches, and renders on the main thread.

Expected condition​

A graph-specific endpoint returns stable IDs, minimal nodes, edges, project and branch revision, total counts, and explicit completeness/truncation in bounded calls. Large projects open a neighborhood or progressively expanded subgraph.

Why it matters​

The current canvas can show a false topology. Raising the list limit fixes one omission only by increasing request fan-out, layout latency, and browser memory.

Existing controls and workarounds​

Direct object pages can show a known relationship. They do not establish that the overall graph is complete.

Alternatives considered​

  1. Recommended: bounded server graph projection with neighborhood expansion.
  2. Server-side complete graph export for offline analysis, separate from the interactive canvas.
  3. Fetch all definitions into the browser — simple but unbounded and unsuitable as the default interaction.

Component involvement​

  • Ontology backend provides authorized node/edge projection and revision.
  • BFF preserves graph paging and completeness metadata.
  • Oqullus virtualizes/progressively renders and warns on partial data.

Reproduction and verification​

Follow ONT-S015.

Resolution conditions​

Close when targets beyond 50 remain visible, dependency failures are explicit, and supported node/edge limits meet recorded API and browser budgets.

Validation and blockers​

The data path is source-confirmed. A representative large connected model and browser performance trace are pending.