upvote
Sounds like a good use case for CRDTs, which would also enable offline editing
reply
In my use case I have 2 or 3 users editing the same database concurrently and they all want to see other's updates in near real time (within a second or two). Would a CRDT support that? It would be great if it did and I could just keep using XML to persist everything with no server. But that sounds unlikely.
reply
https://firebirdsql.org has been flying under the radar in-between SQLite and full-blown PostgreSQL for decades, but if you're asking which client-server database to use PostgreSQL is the default recommendation.
reply
Did some reading. Given my modest performance requirements, Firebird might be a good choice due to simpler install and admin. Thanks.
reply
If postgres is too heavyweight for you but you still want client-server, I'd consider MySql. It's an old classic, pretty fast and scalable, and has much better mainstream support and a bigger ecosystem than Firebird.

I'm not really sure what Firebird is for at this point in life really. It was pretty exciting when it was open sourced in the early 2000s, before postgres became the mature beast it is, before mysql acquired something as basic as transactions, and before sqlite became the default embedded db. But then it never really went anywhere.

reply
Good to know. Thanks.
reply
DuckDB is more for analytics. I don’t think you’re going to find good options for a DB that can handle concurrent users without hosting it in some way server side. It’s certainly possible (think how some games create their own client servers for direct multiplayer) but honestly hosting Postgres or SQLite is ridiculously cheap, easy, and more importantly the standard approach to this issue.
reply
IIRC SQLite is in-process and says in it's documentation that it is not a client-server database.
reply
I think the term you want to search for is local-first.
reply
My understanding is that Local First means syncs across multiple devices, which is not the same thing as multi-user concurrent access.
reply