Skipped Human-readable IDs

Kevin
Kevin
  • Updated

What’s a Human ID?

Many Benchling objects like Entries and Workflow Tasks have a human-readable identifier. These are also referred to as displayIDs in our API. Below is a table of tasks displaying their human ID - each ID has a prefix followed by a number.

 

In the above example, there are 5 tasks within the task group pmot1, so we have 5 ids whose numbers range from 1 to 5. (Note that pmot1 is actually the human ID for the task group. pmot is the prefix.)

 

Why Did My Human ID Skip a Number?

While rare, it’s possible for a group of IDs to skip a number. A group of 3 items with the same prefix might actually have the IDs: prefix1, prefix3, prefix4.

Human IDs are not guaranteed to be gapless. We make a best effort that they are, but due to practical considerations around distributed systems, we cannot provide a hard guarantee that this is the case. An ID is typically skipped due to transient system outages, and such outages are rare.

 

Why don’t we guarantee gapless IDs?

Relaxing the gapless constraint allows us to generate more IDs at the same time, faster. This means the entire Benchling application has less performance bottlenecks.

For features like Workflows, which involve many bulk operations, it means we can create and process more tasks in parallel. We can do this while utilizing fewer shared Benchling resources, which means other actions on the same deploy will also be faster.

 

Internal: How often will ID skipping occur?

Actual frequency depends on the object in question. For Workflow Tasks:

  • This will be rare. We estimate this will happen a few times a month max across all tasks for all workflows customers at current usage levels (March 2024)
  • Most users are unlikely to ever encounter ID skipping
  • Users that send large batches of tasks are more likely to encounter skipping

Was this article helpful?

Have more questions? Submit a request