Skip to content

Normative · Part

Workload classes

Each syncable table MUST declare one mutation class.

Rows are immutable after publication.

Permitted operation:

INSERT

Native representation:

PME-encrypted Parquet data object

Rows are immutable after insertion but may later be logically removed.

Permitted operations:

INSERT
DELETE

Native representation:

PME-encrypted data objects
+
encrypted delete objects

Rows may be updated concurrently.

Permitted operations:

INSERT
UPDATE
DELETE

Native synchronization remains SSP/1 change events.

Mutation class MUST NOT be inferred from recent behavior.

A table that requires resurrection, concurrent replacement, or arbitrary updates SHOULD be classified MUTABLE even if updates are rare.

Example:

Table Mutation class Why
datasets.sensor_readings APPEND Immutable measurements at a point in time; nothing is ever retracted
datasets.position_history APPEND_DELETE Immutable observations, but a range may have to be erased on request
datasets.access_log APPEND_DELETE Same shape: append-only until a retention rule removes a span
datasets.imported_records APPEND_DELETE An upstream correction retracts rows rather than editing them
entities.* MUTABLE Reference records genuinely edited in place, concurrently
catalog.* MUTABLE Metadata about the data, rewritten as it changes

The right-hand column is the classification: what the data is, not how often it happens to change.