Apache Avro

avro.apache.org ↗

Serialize structured data with schemas and compact binary encoding across supported programming languages.

SI Score
80/100
Pricing
Open Source AI reading, not confirmed
Free plan
Not confirmed
Sign-up required
Not confirmed

Ask SI about Apache Avro

Answers use saved listing facts and recorded sources.
Homepage screenshot
Screenshot of the Apache Avro homepage

What it does

Apache Avro is a schema-based data serialization system with a compact binary format, container files, RPC support, and language APIs. A schema describes records and fields; Java projects can optionally generate specific classes from that schema, while the core format can also be used without code generation. Because binary data does not carry its field names and types by itself, readers need the writer's schema or a container format that records it.

Define a schema before exchanging records

The Java getting-started guide walks through a small user record: define its fields in an Avro schema, add the Java dependency, optionally compile the schema into generated classes, then serialize and read a record back. That is a useful first task when two services need a stable shape for a message or file. The guide also describes how to work without generated code, so a small integration need not begin with a code-generation step. These are documented examples; no schema or data file was created here.

Avro's compact binary format does not include field names or type information in each encoded value. The reader therefore needs the schema used by the writer, or a container file that carries the schema with its data. Preserve that schema with the data contract and plan how changes will be read by older and newer consumers; a syntactically valid schema is not by itself proof that every consumer remains compatible.

Apache Avro is an Apache Software Foundation project under Apache License 2.0. This record covers the serialization project and its language libraries, not a hosted message broker or database.

Strengths

  • A schema can describe structured records independently of one application's source language.
  • The Java guide documents both generated classes and serialization without code generation.
  • The project provides a compact binary format, container files, and RPC support.

Watch out for

  • A reader must have the writer's schema or a container carrying it; the binary value does not include field names and types.
  • Teams must manage schema evolution and compatibility across the producers and consumers that exchange data.

Best for

  • Data pipelines that need a defined record schema shared across applications.
  • Java teams evaluating generated records or a more dynamic Avro serialization workflow.
  • Services that need compact data exchange and can manage writer schemas explicitly.

Sources