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.
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.