IDL:
- Creates an Avro-like Schema
- Desn't require labeling field location as in Thrift / Protocol Buffers
- Compiler to generate output boilerplate code in multiple languages
- Runtime library for supported languages which boilerplate code will use (targeting C++, Java, Python, JavaScript, TypeScript, C#, Kotlin, Scala)
- Supports storing data in Array of Struct (Row) or Struct of Array format (Column) per record type
- Allows Specifying RPC calls
- Annotations for optional implementation details
- Inheritance