Skip to main content

Capabilities

GMP defines ten capabilities, declared via capabilities() (src/aml/backends/interface.py). They are independent and append-only across versions. Per GOVERNANCE.md §2, all ten capabilities in v0.2 are FROZEN — their interface and conformance tests will not change. Declaring a capability means the backend MUST satisfy its behavioral contract.

Capability (enum value)StatusSpecWorkloadWhat it guarantees
BI_TEMPORAL (bi_temporal)FROZEN§3.2W2Point-in-time as_of queries over valid-time intervals.
SUPERSESSION_CHAIN (supersession_chain)FROZEN§3.1W2Superseded facts excluded from current answers, retained in audit().
HARD_DELETE (hard_delete)FROZEN§5W6Irrecoverable deletion on the read path — two-sided (no leak, no over-purge).
MULTI_TENANT (multi_tenant)FROZEN§6W5Strict read-path tenant isolation — two-sided.
CROSS_SESSION_PROPAGATION (cross_session_propagation)FROZENW9State (incl. deletions) propagates correctly across sessions.
CONFLICT_DETECTION (conflict_detection)FROZENW7Contradictory writes are flagged, not silently merged.
AUDIT (audit)FROZEN§6.6The immutable record: yields superseded/evicted facts, excludes hard-deleted.
PROVENANCE (provenance)FROZEN§7.5Content-addressed fact_id + source fields (write_id, written_at, written_by).
CRYPTOGRAPHIC_PROVENANCE (cryptographic_provenance)FROZEN§7.4Ed25519 signature over the fact_id; tamper-evident.
CONCURRENCY_CONTROL (concurrency_control)FROZENW10Serializable isolation for concurrent operations.

CONCURRENCY_CONTROL is the tenth capability; implementing it requires the extra method on the ConcurrentMemoryBackend protocol extension (a backend declares the capability and provides that method). It is exercised by W10.

Lifecycle

Capabilities move through PROPOSED → DRAFT → STABLE → FROZEN (see Capability lifecycle); all ten v0.2 capabilities are at FROZEN. The enum is append-only — capabilities are added in minor releases, never repurposed or removed.

Source: src/aml/backends/interface.py, GOVERNANCE.md §2