running into that pgbouncer transaction pooling issue with hibernate prepared statements is a total rite of passage when scaling postgres. glad you called out the ordered uuid locking to dodge deadlocks. most people just throw async at it and pray, but decoupling the accept path while engineering for raw db-level limits is how you actually survive a million hits.