I Like Enums, but I’ve Stopped Calling Them Closed
Enums feel wonderfully closed inside a codebase, where the compiler knows every possible value. Across an API boundary, that guarantee disappears: a new value can break generated clients, vanish in application logic, or complicate database migrations. This article looks at how OpenAPI, Java, PostgreSQL, and protobuf handle that gap—and how to test for the enum value that does not exist yet.