In newer Mendix versions you are able to choose whether to expose the Mendix ID of an entity. However, if you select this ID as key, you will get a warning message that this is not recommended as the Mendix ID can change in some scenario's. I have two questions on this matter: What are these scenario's? Is there a ‘best practice’ for managing the key for an entity (concerning OData)? Complete warning message: Warning, CW6301, "Publishing object ID for resource '<Entity>' is not recommended, because it is the internal identifier that may change in some scenarios.", System ID of entity <Entity>,Published OData service '<OData Service>, OData
Viktor de Jonckheere
You want a public ID that is stable. E.g., for getting citizen information from the dutch government BSN (burger service nummer) is a good ID, as it will not change. It’s also consistent across different services and apps. You’ll find the same for most order management systems or customer relationship management systems. I’d be very inconvenient for customers to provide a customer id or order id that’s different depending on the backend system involved.
Mendix internal IDs are generated without guaranteeing that the same object will always have the same ID across apps. Model changes or environment changes may affect the ID. To avoid this, it’s best to define an ID attribute that you can fully control and ensure it’s stable, ideally across systems and apps.