Java records were originally introduced as compact data carriers, but their usage extends far beyond simple data holding. They can also help reduce boilerplate code in various parts of an application.