Avro는 데이터를 컴퓨터가 이해하고 저장하거나 전송하기 쉬운 바이너리 형식으로 변환하는 JSON과 같은 역할을 하는 '데이터 직렬화 시스템'입니다. 직렬화/역직렬화 성능과 공간 효율성이 높아 특히 Hadoop, Kafka와 같은 빅데이터 처리 시스템에서 널리 사용됩니다. 비슷한 라이브러리로는 구글의 protobuf, 페이스북의 thrift가 있습니다.
Avro는 스키마에 의존합니다. Avro 데이터를 읽을 때, 이를 쓸 때 사용된 스키마가 항상 존재합니다. 이를 통해 각 데이터를 값당 오버헤드 없이 쓸 수 있어 직렬화가 빠르고 작아집니다. 또한, 데이터와 스키마가 완전히 자체 설명적이므로 동적 스크립팅 언어와 함께 사용하기도 용이합니다.
Avro 데이터가 파일에 저장되면 스키마도 함께 저장되므로 나중에 모든 프로그램에서 파일을 처리할 수 있습니다. 데이터를 읽는 프로그램이 다른 스키마를 예상하는 경우 두 스키마가 모두 존재하므로 쉽게 해결할 수 있습니다
{
"name": "OrderCancelKafkaEvent",
"namespace": "com.example.springkafkaavro.common.kafka.model",
"type": "record",
"fields": [
{
"name": "odrderId",
"type": "long"
}
]
}

A Benchmark of JSON-compatible Binary Serialization Specifications
A Survey of JSON-compatible Binary Serialization Specifications
Putting Avro into Hive
Benchmarking Performance of Data Serialization and RPC Frameworks in Microservices Architecture: gRPC vs. Apache Thrift vs. Apache Avro
Apache Avro
Object serialization vs relational data modelling in Apache Cassandra: a performance evaluation