Comment by blackoil
2 years ago
More than one server. Sqlite should be thread safe and simple services can scale to thousands of parallal users. If you are OK with some downtime every 6 months when server goes down it will scale well. Deploy/ rollback will be an effort.
Gotcha. And that makes sense for the purpose of the project. Should one have multiple instances of sqlite dbs, what strategies exist to keep them synced?
Downside with separate SQLite databases will be when you want to have statistics over many users.
I'm in this situation right now. How would one go about solving this?
To keep this simple, I'm thinking exporting just the necessary data from each db and inserting that to a stats db (having a source column to each table, referring to the original db). Then load the stats db with Metabase or something.
Migrations on the stats db may be a bit of a pain, as well as making sure that all data is exported and imported correctly every time.
I'm sure there are better ideas.
Litestream is a library that allows you to easily create backups. You can probably just do analytics queries on the backup data.
https://litestream.io/
See this: https://news.ycombinator.com/item?id=26581807