How to separate System from DATA?

I have found how to expand the ZFS pool and hence have more space for Data files.
I am wondering whether it is possible to separate completely the system files (everything possibly including the DB) from the actual Users Data Files. Having them in different disks. The ideal is that if a future upgrade or something else doesn’t go well to recover that drive only instead of everything, especially if the data pool grows big.
Any ideas?

There is of course the External Storage however this is not where user’s home is created as soon as the user logs in for the first time.

well. without the databse you’ll the metadata. (e.g. which file is shared with whom. etc.)
you need a backup script and strategy. see my ansible playbook for an example.
also - if you choose to use my playbook - you can mount the data directory (e.g. /var/nc-data) to a separate filesystem. that’s no problem.

another how to for backup you’ll find here: https://www.c-rieger.de/nextcloud-backup-and-restore/