About UUID and generators in PostgreSQL
Answers to your questions:

There are no problems, but the performance will be somewhat worse than using a sequence generated bigint primary key, because adding one to an integer number has to perform better than anything more complicated. Also, a uuid takes twice the storage space (16 bytes).
You should benchmark if that makes a noticeable difference for you.

Apart from the performance impact, it makes no difference.

It does not matter, they just return different constants.

The name parameter can be any string. That function is IMMUTABLE, so you have to make sure that you use different names if you want different UUIDs.


Use UUIDs if you need to generate artificial primary keys in a decentralized fashion, for example in the application code or in different database if you use sharding. If the primary keys are generated in a single database, use a sequence.