Skip to main content

Oxigraph as Local Development Triple Store

  • Document Type: ADR
  • Status: Accepted
  • Date: 2025-08-07

Context

ABI needed a local triple store for development that did not require a running JVM or external Docker service. Blazegraph was the initially planned backend but was evaluated and rejected. The requirements were:

  • Lightweight memory footprint for developer laptops.
  • Native Apple Silicon (M1/M2/M3) support without emulation.
  • Fast startup time for iterative development.
  • Sufficient SPARQL 1.1 compliance for ABI's query patterns.
  • Embeddable in-process or trivially runnable locally.

Decision

Use Oxigraph as the local development triple store adapter, replacing Blazegraph:

CriterionOxigraphBlazegraph
Memory~50–100 MB~500 MB+
Apple SiliconNativeJVM only
Startup< 1 second5–15 seconds
SPARQL compliance1.1 (full)1.1 (full)
Embedded modeYesNo

Oxigraph is configured as the default when ENVIRONMENT=local. Production deployments use Apache Jena Fuseki TDB2 (see 20260212_apache-jena-fuseki-default-triplestore).

Consequences

Positive

  • Developers can run the full ABI stack locally without Docker.
  • Near-instant triple store startup in dev.
  • Native performance on Apple Silicon machines.

Tradeoffs

  • Oxigraph's on-disk format is not compatible with Fuseki TDB2; data cannot be directly migrated between environments.
  • Some advanced Fuseki-specific features (e.g. SPARQL update transaction isolation) behave differently under Oxigraph.
  • Two distinct triple store adapters must be maintained and tested in CI.