Requiring numeric, auto-incrementing IDs may result in data locking, race conditions, and sharding issues. This is unlikely to be an immediate issue, but when an instance gets big enough to warrant distributing its servers across a variety of data centers that will become impossible with an auto-incrementing object identifier system.
I propose we loosen the specification to:
Allow object IDs to be of any type and
Decouple the responsibility for ordering from the responsibility for efficient lookup.
This will allow implementations to choose between auto-incrementing primary keys or other mechanisms for ID uniqueness and message ordering, such as cursors or timestamps.
Requiring numeric, auto-incrementing IDs may result in data locking, race conditions, and sharding issues. This is unlikely to be an immediate issue, but when an instance gets big enough to warrant distributing its servers across a variety of data centers that will become impossible with an auto-incrementing object identifier system.
I propose we loosen the specification to:
This will allow implementations to choose between auto-incrementing primary keys or other mechanisms for ID uniqueness and message ordering, such as cursors or timestamps.