How to synchronize machines? Also how to structure data

I read Synchronization | Kopia but I find it a bit lacking.

My goal is to have N machines (probably 2 or 3), each machine has it’s own data to backup, but also each machine should “push” it’s data to all the other machines (for redundancy/offsite backups), which means each machine also “pulls” the other machines data.

Also structure wise, I’ll have around 8 or so “buckets” to backup.
For example the first machine, will backup my personal data (into buckets of: my phone, my laptop, my desktop, etc) while the other machine will backup it’s own server data (database files, logs, etc), and will have a “bucket” for my website, gitea, etc.

What would make the most sense to me is to have a single repository per machine for it’s own data, which contains those multiple “buckets”, where each bucket has it’s own list of snapshots.
But this doesn’t seem to exist in kopia, so the 2 alternatives I was thinking of is either have 1 repo per “bucket” or just have each bucket be a top-level directory.

Any guidance/help will be appreciated

For one… this is simply not, what Kopia is designed to do. If you want synchronization between hosts, use appropriate software - and there’s a ton for that out there, e.g. syncthing or something like that.

The main reason to use the same repo for different hosts is deduplication. If you handle a lot of the same or similar data on different hosts, you will benefit from deduplication. If not, then there’s no reason to have a different repo for any one machine you want to backup.

So followup:

I am using syncthing for some stuff already, would you recommend using it with Kopia? so for example have a repo for my local machine backups and a repo for my server backups, and then have the server share it’s repo with local and local share it’s repo with server using syncthing?

There is most likely quite a bit of duplication in my repos (as I have copy pasted a bunch of stuff each time I moved to a new computer), so it’d be ideal to have it in one repo (while server vs local repo will have completely different data so it’s fine), my issue with one repo is I might want different policies, like my old PC backup is a “one and done” thing for archiving so it can be highly compressed, while things like my current $HOME dir will change and be backed up frequently, while my phone backup changes but will be backed up infrequently as it won’t always be available due to it being external).

Is it possible to handle these kind of things in the same repo? if not then what would you suggest doing?