< Back to system-design

All 2 comments

user image

Zeeshan Saleem

Most large chat apps actually use a mix, or specialized databases. Discord, for example, famously switched to ScyllaDB (a Cassandra rewrite) because they write billions of messages a day. For a startup, though, Postgres is incredibly capable and can easily handle millions of rows before you need to worry about sharding.

user image

Zeeshan Saleem

I agree. Start with Postgres. You can even use the JSONB type in Postgres if you need flexibility for message metadata (like reactions or attachments) without giving up ACID compliance.