- encrypted, chunk-deduped, snapshotted backups
- single Go binary, so I could even backup the binary used to create my backups
- reasonable versioning and release scheme
- I could read, and understand, its design document: https://github.com/restic/restic/blob/master/doc/design.rst
I then just tried using it for a year and never hit any issues with it, so kept going, and now it's 6+ years later.
1 - some of my first experiences with backup failures were due to media problems -- this was back in the days when "backup" pretty much meant "pipe tar to tape" and while the backup format was simple, tape quality was pretty bad. These days, media -- tape or disk -- is much more reliable, but backup formats are much more complex, with encryption, data de-dup, etc. Therefore, I consider the backup format to be at least as much of a risk to me now as the media. So, anyway, I do two backups: the local one uses restic, the cloud backup uses borg.
2 - I use rsync.net, which I generally like a lot. I wrote up my experiences with append-only backups, including what I did to make them work with rsync.net here: https://marcusb.org/posts/ransomware-resistant-backups/