package main import ( "fmt" "time" "intulid" "github.com/oklog/ulid/v2" ) type Event struct { id int64 createdAt time.Time Foo string Bar string } func main() { t := time.Unix(123, 567) uniq := make(map[string]struct{}) for i := 0; i < 1000000000; i++ { e := Event{ id: int64(i), createdAt: t, Foo: "foo", Bar: "bar", } id, err := intulid.New(ulid.Timestamp(e.createdAt), e.id, []byte(`foo`)) if err != nil { panic(err) } fmt.Printf("%d -> %s\n", e.id, id.String()) if _, ok := uniq[id.String()]; ok { fmt.Printf("%d -> %s\n", e.id, id.String()) panic("duplicate id") } else { uniq[id.String()] = struct{}{} } } }