17 ms·
Great link. I've always been drawn to sqlite3 just from a simplicity and operational point of view. And with tools like "make it easy to replcate" Litestream
by randito 8mo ago
Great link. I've always been drawn to sqlite3 just from a simplicity and operational point of view. And with tools like "make it easy to replcate" Litestream and "make it easy to use" sqlite-utils, it just becomes easier.
And one of the first patterns I wanted to use was this. Just a read-only event log that's replicated, that is very easy to understand and operate. Kafka is a beast to manage and run. We picked it at my last company -- and it was a mistake, when a simple DB would have sufficed.
https://github.com/simonw/sqlite-utils https://github.com/simonw/sqlite-utils
https://litestream.io/ https://litestream.io/
- tombert 8mo agoI love the idea of SQLite, but I actually really dislike using it. I think part of my issue is that a lot of uses of it end up having a big global lock on the database file (see: older versions of Emby/Jellyfin) so you can't use it with multiple threads or processes, but I also haven't really ever find a case to use it over other options. I've never really felt the need to do anything like a JOIN or a UNION when doing local configurations, and for anything more complicated than a local configuration, I likely have access to Postgres or something. I mean, the executable for Postgres is only ten megs or twenty on Linux, so it's not even that much bigger than SQLite for modern computers.
- mjmas 8mo agoPRAGMA journal_mode = WAL; And set the busy timeout tunction as well. https://www.sqlite.org/c3ref/busy_timeout.html https://www.sqlite.org/c3ref/busy_timeout.html
- sdoering 8mo agoCurious, what do you think about > PRAGMA synchronous = NORMAL; I am just not experienced enough to form an opinion.