Defining a schema : user.avsc
Code generation : create class User
based on the scheme
User
DatumWriter<User>
DataFileWriter<User>
DatumReader<User>
DataFileReader<User>
Without code generation : use of scheme
and GenrericRecord
Schema
GenericRecord<GenericRecord>
DataFileWriter<GenericRecord>
DatumReader<GenericRecord>
DataFileReader<GenericRecord>