benbjohnson/litestream

restore: distributed transaction across two litestream dbs

zeroexcuses opened this issue · 1 comments

We are running to separate litestream DBs, call them dbA, dbB.

dbA gets transactions a1, a2, ..., a100
dbB gets transactions b1, b2, .., b100

a80 / b90 is a distributed transaction -- it modifies both litestream dbs simultaneously. In particular, during restore:

A -> a81, B -> b89 is an error
a -> a79, B -> b91 is an error

because in both cases, only half of the distributed transaction happened.

Question: is there anyway to do distributed transactions / restore in litestream ? We want to be able to mark certain transactions as distributed, and then have the multiple litestream restores to sync so that the transaction is all-or-nothing across multiple litestream dbs.

@zeroexcuses Litestream is meant to be used for disaster recovery on a single node. If you need multiple writers, you'll need to look into something like Mycelial. There's also LiteFS but that's still a single writer but with read replicas.