In Groovy, it is possible to create an immutable using the groovy.transform.Immutable annotation. One possible use-case for this is when we want to create a object (with data initialized through the class constructor) that is passed to another application layer (e.g., service) but we don’t want that object modified in that layer.