Universally unique identifiers: UUID vs ULID

  • avatar
  • 7 mins read
Preview post image

Historically a lot of software has used incrementing numbers to represent the identifier of a particular piece of data. They can be auto-generated by many data stores, they are easy to read, efficient to store and naturally time ordered.

As time passes, applications become larger. They need more resources and usually distributed in different places. That may cause some errors generating concurrent numbers and coordination issues. Incremental numbers can also be the source of security problems and they may include implicit information about datasets volume. Modern software architectures also trend to decouple infrastructure layer and move ID generation logic to the domain core.

Decimal, binary and hex representations

  • avatar
  • 5 mins read
Preview post image

When working with any kind of digital system in which numbers are being represented, it is important to understand the different ways numbers are represented in these systems.

In electronics, almost without fail, numbers are represented by two voltage levels which can represent a one or a zero. The number system based on ones and zeroes is called the binary system: because there are only two possible digits. In HTML programming, colors can be represented by a 6-digit hexadecimal number: FFFFFF represents white whereas 000000 represents black.