What if I require contiguous human-readable Unique IDs?

Human-readable IDs allocated by the key server are sequential, but can have gaps for two reasons:

In instances where there is a requirement to generate human-readable IDs, where the numbers must be both sequential and have no gaps, Cúram uses an application defined "key" table for each set of IDs (for example, InternalPersonID, InternalEmployerID, etc). An example of such a business requirement is the one around the issuing of "Social Security Numbers". These tables are read and updated in the context of the application transaction, meaning, the ID is only allocated if the record bearing that ID is committed to the database. Otherwise, the whole business transaction, including the ID allocation, is rolled back. It is worth noting that there is a performance overhead because of this, as the single row ID table is a database hot spot that must be updated every time the record bearing that ID is committed to the database.

Thus it is recommended that: