the approach in the attached patch offers a different user-owned cluster *per instantiated template*.
This keeps the data for each invoked database localized, within that named directory in ~/.config/foo. Another approach would be to have a single /usr/lib/systemd/user/postgresql.service that runs a single cluster (under ~/.config/postgresql/ perhaps?), and to have some separate templated unit that would create a database in that cluster. This makes the per-application backup story slightly more complicated, but it's still not too bad. If that approach sounds like something you'd be more likely to accept, i'm happy to send a patch implementing it. let me know if you have any suggestions, criticisms, or feedback! Regards, --dkg