{"id":"wal-binary-format-prevents-evolution-and-recovery","text":"The WAL binary format is simultaneously inflexible and fragile: contiguous record packing with no block alignment prevents resync after mid-file corruption, signed 32-bit length fields theoretically admit negative values with no guard, and there is no version field — a format change invalidates all existing WAL files with no migration path and no way to distinguish old-format from new-format records.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["wal-contiguous-no-block-alignment","wal-key-value-length-signed-int32","wal-format-change-breaks-compatibility"],"outlist":[],"label":"Format blocks both corruption recovery (no block boundaries) and evolution (no version field)"}],"dependents":["binary-formats-rigid-across-entire-storage-stack"],"metadata":{},"created_at":"","updated_at":"","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"wal-binary-format-prevents-evolution-and-recovery","truth_value":"IN","reason":"SL justification valid","antecedents":["wal-contiguous-no-block-alignment","wal-key-value-length-signed-int32","wal-format-change-breaks-compatibility"],"label":"Format blocks both corruption recovery (no block boundaries) and evolution (no version field)"},{"node":"wal-contiguous-no-block-alignment","truth_value":"IN","reason":"premise"},{"node":"wal-key-value-length-signed-int32","truth_value":"IN","reason":"premise"},{"node":"wal-format-change-breaks-compatibility","truth_value":"IN","reason":"premise"}]}}