An Avro schema describes a record: its name and its typed fields. It is the contract, not the data.
Who uses it
Kafka pipelines and anything in the Hadoop family.
Writing Avro Schema
Types are inferred per column from the values present. Any column with a gap in it becomes a union with null, because a reader rejects a record whose non-nullable field is missing.