A record is a concise syntax for an immutable data carrier. It generates final fields, a constructor, and `equals/hashCode/toString` automatically. Use it for DTOs, messages, and value-like objects—not for entities with complex mutable lifecycle.