{"id":"avro-writer-reader-dual-schema-resolution","text":"AvroDecoder always requires both a writer schema (to parse the wire bytes) and a reader schema (to shape the output); this dual-schema resolution is Avro's core mechanism for schema evolution.","truth_value":"IN","source":"entries/2026/05/29/avro-serializer-avro_serializer.md","source_url":"","source_hash":"","justifications":[],"dependents":[],"metadata":{"example":"def _resolve_record(self, writer_schema, reader_schema, data):\n    # match fields by name, apply defaults for missing reader fields\n    for rf in reader_fields:\n        if rf[\"name\"] in writer_data:\n            result[rf[\"name\"]] = writer_data[rf[\"name\"]]\n        elif \"default\" in rf:\n            result[rf[\"name\"]] = rf[\"default\"]"},"explanation":{"steps":[{"node":"avro-writer-reader-dual-schema-resolution","truth_value":"IN","reason":"premise"}]}}