Questions about ZFS and BTRFS

I've been planning on using either ZFS or BTRFS for my new NAS/Server (running RHEL) but I'm still a bit unsure about which one to use. I heard linux zfs support is still pretty bad (because of licenses) though Ubuntu 16.04 supports it. Also how hard do you guys think it would be to port that zfs support to rhel? And about btrfs is it, how stable is it? I've been running my own root partition off it (admittedly without any raid) for a few days now and not noticed a difference yet. How much of zfs' feature set is btrfs still missing? Does it support proper raid 5 yet? I've seen some people argue over it so I'm not sure yet? And now a question about both of them: how long would it take until the drives experience bitrot when I'm not using ECC memory? I'm asking this because I really don't have the money for ECC (yet) but I'll probably upgrade later and I want to see how long I can safely run without ecc. I probably missed a question I had simply because I'm tired so I may had a few questions later on in an edit

btrfs is just a filesystem that goes over a raid. it uses advanced math to make sure all of your files stay as you put them on there.

You can use ZFS on any Linux and it's about as good as on the other platform, save for a few features that might not be available yet. In general this should not affect the usability or stability of ZFS on Linux. See here for details: http://open-zfs.org/wiki/Features

The licensing issue is that ZFS supposedly can't be distributed with Linux, but that doesn't prevent you from using ZFS on Linux for yourself. Most distros should have ZFS available as a DKMS module in the package repos (similar to how the Nvidia drivers are packaged).

ECC is a necessity for data integrity regardless of the filesystem you use. Any system that does not use ECC memory has the potential to corrupt your storage. The odds of catastrophic failure are very very slim, but it's not impossible. ECC is generally used in any system where data corruption or downtime would be more costly than the investment in the hardware. Spending a few hundred dollars more on the appropriate hardware is a no-brainer in these situations. If it's simply out of the question for you, then you can get by without ECC. But it's always recommended for any system that must stay running for long periods of time or where errors are unacceptable.

Btrfs vs ZFS is a heated debate with fanboys on both sides, so I'll leave it at this: ZFS is demanding but rock solid. Btrfs is slick but has a bad track record.