# How we used Go 1.18 when designing our Identifiers

DevFeed: [How we used Go 1.18 when designing our Identifiers](<https://devfeed.tech/articles/how-we-used-go-1-18-when-designing-our-identifiers-17804.md>)

Original publisher: [Read original article](<https://encore.dev/blog/go-1.18-generic-identifiers>)

Author: Dominic Black

Published: 2022-03-25T00:00:00Z

Content type: article

Language: en

Sources: [Encore Updates](<https://devfeed.tech/sources/encore-updates.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [data](<https://devfeed.tech/topics/data.md>), [Traces](<https://devfeed.tech/topics/traces.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [aws](<https://devfeed.tech/tags/aws.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [database](<https://devfeed.tech/tags/database.md>), [debug](<https://devfeed.tech/tags/debug.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [go](<https://devfeed.tech/tags/go.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [security](<https://devfeed.tech/tags/security.md>), [traces](<https://devfeed.tech/tags/traces.md>)

## AI overview

This article explains how Encore considered identifier design in distributed systems while using Go 1.18. It discusses the limitations of auto-incrementing identifiers and outlines requirements including sortability, scalability, collision avoidance, zero configuration, and type safety.

## Source excerpt

It turns out identifiers were generic the whole time