Record are product types, with union types (sealed types in Java speak) you get algebraic data type, you can take a look to SML to understand why there will be used a lot.
Record have an automatic way to propagate annotations from the record component to the generated methods/fields and comes with native support of serialization (like enums).