SQL or NoSQL

Thoughts on the famous debate.

· #SQL#NoSQL#Databases

The answer to this question is actually pretty boring: it depends. What are you building? What does the data actually look like? What are the relationships?

Where SQL usually wins:

  • Relationships are obvious — users, orders, that stuff. JOINs exist for a reason.
  • Half the team already writes SQL. Why make everyone learn something new?
  • Money or state you can’t screw up. ACID isn’t just for textbooks.
  • You’re still figuring it out. Postgres has JSONB when you want to defer schema decisions a bit.

Where NoSQL makes sense:

  • You’re mostly appending — logs, metrics, whatever. Heavy relational reads would be overkill.
  • You already know you’ll need to scale out. Not “someday” — it’s coming.
  • Nested blobs you fetch by ID. Weird product catalogs, big configs, etc.
  • Prototype mode and migrations every week would hurt. Fine — just remember that gets old once the prototype sticks around.

If you’re starting something new and you’re unsure, default to PostgreSQL. It’s versatile, well-understood, and you can always shard or add read replicas later. Don’t choose based on hype or what Twitter said.

The database is rarely the bottleneck.