As the founder and CEO of a two-year-old startup, seeking certainty in the direction amidst uncertainty (determining which products can bring customers and profits) should become my instinct.
See some development frameworks for local-first apps support both SQLite and PostgreSQL. The advantage of using PostgreSQL is that when you add a cloud option to your local-first app, the migration becomes much easier.
I bet that all message queues and log databases will support S3, as these types of data generally have a large volume and aren't as economically valuable (don't get me wrong, what I mean is that these databases won't be frequently read and processed).
I think the codebase of Redis is too small, which makes the cost of maintaining a Redis fork relatively low. Moreover, Redis was forked too late. This puts Redis Inc. at a disadvantage in the battle against cloud vendors.
In our production environment, we use XFS to run various databases, including MySQL, PostgreSQL, MongoDB, etc. It delivers performance that is either superior to or on par with ext4.
Understand and optimize relational databases (MySQL, PG) rather than introducing a new type of database (e.g., DynamoDB, Kafka, Redis) whenever issues arise.
Common mistakes:
- Lack of indexes
- Using ORM (generating too many SQL queries or inefficient queries that return all columns)
Some suggestions:
- Use relational databases where possible, instead of NoSQL
- Use read-only replicas instead of Redis when applicable
- Keep relational databases clean and data size small
The author's message is: Hey, folks, if you don't have the ability to use relational databases properly, then your usage of Kafka and DynamoDB will certainly be a mess as well.