{"id":"avro-encoding-prioritizes-compactness-over-self-description","text":"Avro's binary encoding systematically prioritizes compactness over self-description: the format contains no type tags or field names (requiring both schemas for decoding), arrays use zero-terminated blocks for streaming, and negative block counts enable O(1) skipping — all optimizations that assume schema availability.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["avro-no-self-describing-format","avro-block-encoding-zero-terminated","avro-negative-count-carries-byte-size"],"outlist":[],"label":"Three encoding design choices all trade introspectability for compact, streaming-friendly wire format"}],"dependents":[],"metadata":{"last_reviewed":"2026-05-30T09:01:17","review_result":"pass"},"created_at":"","updated_at":"","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"avro-encoding-prioritizes-compactness-over-self-description","truth_value":"IN","reason":"SL justification valid","antecedents":["avro-no-self-describing-format","avro-block-encoding-zero-terminated","avro-negative-count-carries-byte-size"],"label":"Three encoding design choices all trade introspectability for compact, streaming-friendly wire format"},{"node":"avro-no-self-describing-format","truth_value":"IN","reason":"premise"},{"node":"avro-block-encoding-zero-terminated","truth_value":"IN","reason":"premise"},{"node":"avro-negative-count-carries-byte-size","truth_value":"IN","reason":"premise"}]}}