I was debating between using ULID vs just using the same sequential bigint sharding strategy that Instagram uses[1][2].
I ended up deciding to use sharded bigints because it enables better indexing, even though there are drawbacks when first writing the instances; The benefit of faster search was more important for me.