Furthermore, this leads to data loss, since there is no other consistency mechanism. I think it might be a high priority issue, taking into account the current momentum behind growth of Lemmy...
Using Couchbase as your eventual consistency database is perfect for this scenario. It's designed for this type of thing. Even if systems are offline for a few days they will queue up and replicate when they come back online. Cruise ships use it for this very reason.
It is a NoSQL database but the SQL syntax is ANSI SQL compliant. If you moved the queues to Couchbase and let it handle the replication and consistency, you wouldn't have to code for it.
Thanks for checking.
We don't need full database replication. We are just replicating activities that other servers are subscribed to. So the Comments table, only some of the rows will be "replicated". Not sure if/how CouchBase handles this.
Normally with XDCR you can specify which documents to replicate out of a bucket. It doesn't have to be the entire bucket. So if you had certain types (comments, upvotes, etc) then only those would sync when the target comes online.
I did check into Apache CouchDB, the open source upstream, and replication is there. We use Enterprise Couchbase at work and it's a dream but there are some tools that I use that only use Apache CouchDB (Inkdrop for example). It's worth looking into.