Yes, ZFS will coexist with any other filesystems you have already, it does not need to be the root filesystem.
It is a little strange in the way you don’t use /etc/fstab to configure mounts, but the configuration of zfs mountpoints using the zfs utility works alongside the normal /etc/fstab way. If you prefer doing everything from /etc/fstab then you can zfs set mountpoint=legacy pool/dataset and then ZFS won’t manage mounting, then add ZFS datasets to /etc/fstab yourself.
In the Arch Linux wiki ZFS page, you should skip all the instructions referring to setup of the initramfs with ZFS hooks (don’t need to modify /etc/mkinitcpio.conf and re-generate the initramfs). Otherwise you’ll probably end up with a boot delay or even failure while it is looking for a ZFS dataset to use as the root filesystem. If you accidently end up in that position, use your bootloader menu / edit the bootloader config to add disablehooks=zfs to the kernel parameters.
I’ve had most success with an LTS kernel and the ZFS DKMS package on Arch (pacman -S linux-lts zfs-dkms zfs-utils) - no issues with kernel updates and ZFS updates. Use of the bleeding-edge kernel and binary ZFS package can have issues because the ZFS support for kernels sometimes lags behind a version.
If you’re not on an LTS kernel and don’t want to change kernel version, I’d start with pacman -S zfs-dkms zfs-utils, create a partition on each disk for ZFS, then zpool create with the partition names, passing -m <mountpoint> for the root dataset mount-point, where-ever you wish to mount it. Datasets within the pool are default mounted under that root, but can be mounted anywhere else using zfs set mountpoint=<mountpoint> pool/dataset (or the special legacy keyword to manage with /etc/fstab).
zpool create should create partitions for you if you pass it an entire disk as a parameter, but I like creating partitions myself to be sure
The partition code is officially bf/bf00 (Solaris root), but using the Linux data code 83/8300 I think is recommended for Linux installs.
You could add a small (<1GB) UEFI ESP partition to each disk and copy your UEFI loader / kernel / initramfs to each one, in case you need to boot from the SATA disks for some reason (NVMe SSD goes whoopsie one day).
So if you have SATA disks /dev/sda…sdd , it should just be a case of:
striped pool - fastest - No redundancy
zpool create -m /mnt/pool mypool /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
raidz1 pool - slower - but any single disk can be lost without data loss
zpool create -m /mnt/pool mypool raidz1 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
striped mirrors - fast and safe - any single disk from each mirror can be lost (2 disks worth of reundancy)
zpool create -m /mnt/pool mypool mirror /dev/sda1 /dev/sdb1 mirror /dev/sdc1 /dev/sdd1