There were two interesting ideas in the design document. (a) SQLite4 is not a replacement for SQLite3. (b) they are implementing pluggable backends. © it’s all one key/value store.
That 4 is not a replacement for 3 is nice in that I can be reasonably assured that my existing code has some running room before I have to find an alternative.
Pluggable backends, however, is causing me some concern. One thing I like about the folks at SQLite is that they code is highly reflective and opinionated. Meaning that they’ve thought about it long before they executed and put it in my toolbox. Now pluggable backends will provide a vector for all sorts of not so considerate code to make it into my project.
Finally, that the engine is based on a key/value model really has me thinking. Why not just put some sort of wrapper around redid and call it a day (actually that’s an epic for the reader).
PROLOGUE: I find it interesting that all manner of new languages are starting to make progress in the mainstream and to great effect. I certainly agree that the work product needs to compile on many more platforms, be linkable into other languages and platforms, and so on, however, I have read some recent articles that are compelling. Bolt, leveldb, lmdb, datomic and maybe a few others.