amduat/docs/oss-backend-adapter-boundary.md

5.8 KiB

OSS Backend Adapter Boundary

Status: Draft Purpose: Define architectural boundaries, responsibilities, and conformance requirements for implementing the OSS backend stack (MinIO, JanusGraph, Cassandra, Elasticsearch, etc.) as spec-compliant adapters.


1. Architectural Position

The OSS backend is an implementation of store/query surfaces, not a semantic extension.

It implements:

  1. ASL/1-STORE.
  2. TGK/STORE/1.
  3. Optional: TGK/PROV/1.
  4. Optional: derived projections (ES, lakehouse).

It does not redefine:

  1. Core semantics (ASL/1-CORE, PEL/1-CORE, TGK/1-CORE).
  2. Canonical encoding (ENC/ASL1-CORE).
  3. Identity derivation (ASL/1-CORE and HASH/ASL1).

2. Authority and Responsibility Model

2.1 Authoritative Components

Authoritative state resides in:

  1. Deployed ASL/1-STORE implementation.
  2. Deterministic TGK projection derived from ASL state.

Adapters must preserve this.

2.2 Derived Components

The following are derived projections:

  1. Elasticsearch.
  2. IPFS.
  3. Lakehouse snapshots.
  4. AI outputs.

Derived components must:

  1. Be replayable.
  2. Be observationally equivalent.
  3. Never redefine semantics.

3. Adapter Modules

This document defines four adapter classes.

3.1 ASL Store Adapter (MinIO or S3)

Purpose

Implements ASL/1-STORE.

Responsibilities

  1. Accept put(Artifact) -> Reference.
  2. Enforce canonical encoding validation.
  3. Persist artifact bytes under canonical identity.
  4. Implement get(Reference) -> Artifact | NotFound.
  5. Map backend errors to canonical error model.

Non-Responsibilities

  1. Computing identity (handled by core logic).
  2. Interpreting artifact contents.
  3. Modifying encoding.
  4. Adding metadata not declared by spec.

Determinism Requirements

  1. Same Artifact → same Reference.
  2. Same Reference → identical bytes returned.
  3. No backend-specific mutation.

Configuration Surface

  1. Endpoint.
  2. Credentials.
  3. Bucket name.
  4. Retry policy.
  5. Multipart threshold.
  6. Timeout policy.

3.2 TGK Store Adapter (JanusGraph plus Cassandra)

Purpose

Implements TGK/STORE/1.

Responsibilities

  1. Provide required query operations defined in TGK/STORE/1.
  2. Enforce canonical (hash_id, digest) ordering.
  3. Maintain deterministic projection behavior.
  4. Map errors to spec-defined error model.

Non-Responsibilities

  1. Creating semantic edges (done via EdgeArtifacts).
  2. Redefining graph semantics.
  3. Implicitly inferring relationships.
  4. Providing authoritative ordering outside spec.

Determinism Requirements

  1. Same ASL state → same TGK answers.
  2. Same queries → same ordered results.
  3. Ordering must not depend on Janus internal traversal order.

Ordering Enforcement Point

Ordering MUST be applied:

  1. Explicitly in the adapter layer, or
  2. In a canonical result transformation layer.

Never rely on backend default sort semantics.


3.3 Projection Adapter (Elasticsearch)

Purpose

Accelerate search and filtering.

Responsibilities

  1. Project canonical artifact metadata.
  2. Optionally project EdgeArtifacts.
  3. Maintain replayable checkpoint.
  4. Expose lag metric.
  5. Enforce schema versioning.

Non-Responsibilities

  1. Authoritative artifact reads.
  2. Authoritative graph queries.
  3. Deterministic ordering.

Verification Requirement

Any ES-derived candidate results must be:

  1. Confirmed via ASL/1-STORE.
  2. Ordered via TGK/STORE/1 logic before returning to clients.

3.4 Snapshot or Lakehouse Adapter (Future)

Purpose

Batch export and audit workflows.

Responsibilities

  1. Snapshot export from authoritative state.
  2. Versioned dataset generation.
  3. Replay equivalence validation.

Non-Responsibilities

  1. Live semantic authority.
  2. Mutation of ASL state.

4. Adapter Error Taxonomy

All adapters must map backend-specific errors into a canonical internal taxonomy:

  1. NotFound.
  2. InvalidArtifact.
  3. PermissionDenied.
  4. TransientIO.
  5. InternalError.

No backend-specific error types may leak across the adapter boundary.


5. Conformance Gates

No adapter may be merged or promoted unless:

5.1 ASL Adapter

  1. Passes ASL/1-STORE conformance suite.
  2. Passes replay equivalence test.
  3. Passes cross-backend equivalence test.

5.2 TGK Adapter

  1. Passes TGK/STORE/1 required query suite.
  2. Passes deterministic ordering test.
  3. Passes cross-backend equivalence test.

5.3 Projection Adapter

  1. System passes integration tests with projection disabled.
  2. Rebuild equivalence test passes.
  3. Lag metric exposed and validated.

6. Observability Contract

All adapters must expose:

  1. Health endpoint.
  2. Error metrics.
  3. Operation latency metrics.
  4. Determinism assertion failures.
  5. Projection lag, if applicable.

7. Security Boundary

Adapters must:

  1. Not embed secrets in artifacts.
  2. Respect per-TypeTag redaction policies before indexing.
  3. Enforce explicit credential configuration.
  4. Avoid implicit trust of backend defaults.

8. Interaction with Conformance Harness

Adapter design is subordinate to the Phase 0 harness.

Implementation order:

  1. Conformance harness operational.
  2. Adapter scaffold.
  3. Adapter passes harness.
  4. Integration and load testing.

No adapter bypasses this sequence.


9. Design Outcome

This boundary ensures:

  1. Thin adapters.
  2. Zero semantic drift.
  3. Deterministic reproducibility.
  4. Backend substitutability.
  5. Operational scalability without semantic mutation.

The OSS backend becomes:

An infrastructure implementation of store/query surfaces, not an evolution of the semantic core.


Where You Are Now (Strategic Position)

You now have:

  1. Semantic core locked.
  2. Execution boundary defined.
  3. Indexing contract defined.
  4. Backend boundary defined.
  5. Implementation phases defined.

You are ready to:

  1. Design adapter scaffolds.
  2. Build Phase 0 conformance harness.
  3. Begin MinIO adapter implementation safely.