What is the contentful_id used for?

Ok so I’ve noticed when returning data from a graphql query in Gatsby that the content types all have unique id’s. However I’ve also noticed that any content type that has multiple locales applied will return the same contentful_id for each. This could be very useful when creating a language switcher as the content types can be matched on this contentful_id.

So what I’d like to know is, will this contentful_id always be the same regardless for all locales of a content type entry, as I believe that it may be used for versioning and the gatsby plugin will only ever get the latest version.

I have also tested this to see if the contentful_id changes when you make a change to a locale without making any changes to the default locale, and it appears to remain the same.

So maybe someone could shed some light on what it’s used for and if it ever gets changed.