As part of GEODE-6272 we realized we need a way to use a PdxInstance as key for a Region entry. The problem with the current PdxInstance behavior is that in some members the key may be seen as a PdxInstance and in others seen as an instance of a domain class. This inconsistency can lead to problems, in particular with partitioned regions because of the key's hash code being used to determine the bucket. You can read more about this here: https://geode.apache.org/docs/guide/17/developing/data_serialization/using_pdx_region_entry_keys.html
What we want is a new type of PdxInstance that will never deserialize to a domain class. It will always be a PdxInstance. This can safely be used as a Region key since PdxInstance implements equals and hashCode. It can also be used in other contexts when you just want some structured data with well defined fields but never need to deserialize that data to a domain class. We are trying to figure out what to call this new type of PdxInstance. Currently the pull request for GEODE-6272 has them named as "stable" because they do not change form; they are always a PdxInstance. Another suggestion was not to name them but add a boolean parameter to the method that creates a PdxInstanceFactory named "forcePDXEveryWhere". Internally we have some code that has a boolean named "noDomainClass". I'd prefer we come up with a name instead of using boolean parameters. In the Java world you label fields that can't change "final" and in the object world you call objects that can't change "immutable". Would either of these be better than "stable"? Any other ideas for what we could calls this new type of PdxInstance?