I’ve made several versions of this, and to be honest, it ended up being so straightforward that I assumed it was a trivial solution.
This is pretty well-planned. This is 100% the way to go.
Heh. I took a detour into making my idea of “streams” also solve event sourcing in native python; dumb idea, if interesting. Mission creep probably killed my effort!
Nice work
— Small memory footprint even for large datasets.
— ACID transactions.
— SQL interface for introspection and reporting.
That's sometimes even just for development work.
A lot of these use a common API to a more complex distributed store, as well as to something simple like files on disk, in memory, or SQLite.
I'm most cases, it's one user at a time, so performance doesn't matter, but simplicity does.
It can also be for the project which has a 1 percent chance of going viral.
Etc. But I find relatively few cases between truly small scale and large scale.
https://python-rq.org
This RQ stuff has been a pain with a recent project because only Python seems to use it, so once an RQ job has been submitted only Python based things can do anything with it. :(If Redka works as a backend replacement, we could potentially have non-Python things check the SQLite database instead.
And it's written in Go. :)