Databases Linkdump
Mon Apr 17 2023E.W.Ayers
There are just so many tools and software companies that are trying to 'rethink how databases work'. But we keep coming back to SQL. I also feel databases could be much better, but so do seemingly half of all coders. The other half choose boring technology.
There are two main threads when talking about building better databases: scalability and developer ergonomics. Scalability is stuff to do with performance and running at 'planet scale' etc. It's important but really you should only care about this if you are FAANG. The more interesting aspect to me is developer ergonomics, this is about making it easy to use and debug databases when you are developing apps.
I have thoughts on all this, but for now let's dump all of the links on this topic.
I will update this doc.
1. Posts on how databases could be better
Seph Gentle: databases have failed the web (HN comments)
Jamie Brandon: Against SQL, What is a database?
Curtis Poe: how databases hurt your startup
Nelson Elhage:
George Seabridge A new database proposal
Philipp Hauer: Why relational databases are not the cure-all
Phil Booth: Nine ways to shoot yourself in the foot with PostgreSQL
Everything wrong with databases and why their complexity is now unnecessary (HN discussion)
2. Posts on how your new database is bad
Erik Bernhardsson: I don't want to learn your garbage query language
Geoff Wozniak What ORMs have taught me: just learn SQL
3. Hot new databases and tools
I'm playing loose with the categories. I will keep updating this.
3.1. New databases
A more comprehensive list is maintained by CMU. Some of these are 'application layer' in that they wrap some existing technology like postgres. But I'm putting them in here if the abstraction is sufficiently tight that you could reasonably replace the wrapped db.
Couchbase is a distributed db with an interesting sync protocol.
A javascript client pouchdb
mongodb
dynamodb
apache cassandra
libSQL is a fork of SQLite open to contributions. Inspiring about page.
RocksDB is low level kv store with loads of features. Lots and lots of databases (eg kafka) use this under the hood as the root persistence layer. It's good. EventStoreDB
... lots more
3.2. New ways of hosting SQL dbs
supabase is managed PostgreSQL with good auth, gui and PostgREST
Turso looks like it's using SQLite, interested to try.
Neon is PostgreSQL with snapshots.
3.3. ORMs
Python: SqlAlchemy, Peewee, Piccolo, dxd (by me)
3.4. Low-code databases
these are often marketed as spreadsheets but I don't see the distinction with databases other than spreadsheets focus much more on UI and low-code visualisations.