Discussion about this post

User's avatar
Alisher's avatar

Enjoyed this series, I found your indexing technique to be ingenious, in particular!

Let me add my two cents:

I've actually used BoltDB at my startup as my app's primary data storage. Eventually, I switched to Postgres.

In my opinion, what makes a database a "proper database" is a querying language. Otherwise, you just have a storage with nice features.

The ability to write ad-hoc, one-off queries is crucial for startups when you need to get answers to questions (from stakeholders/users/devs) while your app is running.

In the case of an embedded database, you'd have to:

- Write new custom code to query data and redeploy;

- Copy your data from the production environment to a local one, then write your code and run it.

Also, while having a single-file database with a process that has a lock on it is convenient, it becomes a huge pain when you want other processes/apps to connect to the same data source.

As always, this is all very context-dependent. I think BoltDB and similar kv-storages can be a great default option for a lot of cases.

Expand full comment

No posts