Normative · Part
Workload classes
4. Workload classes
Section titled “4. Workload classes”Each syncable table MUST declare one mutation class.
4.1. APPEND
Section titled “4.1. APPEND”Rows are immutable after publication.
Permitted operation:
INSERTNative representation:
PME-encrypted Parquet data object4.2. APPEND_DELETE
Section titled “4.2. APPEND_DELETE”Rows are immutable after insertion but may later be logically removed.
Permitted operations:
INSERTDELETENative representation:
PME-encrypted data objects+encrypted delete objects4.3. MUTABLE
Section titled “4.3. MUTABLE”Rows may be updated concurrently.
Permitted operations:
INSERTUPDATEDELETENative synchronization remains SSP/1 change events.
4.4. Classification is semantic
Section titled “4.4. Classification is semantic”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.