Read replicas before sharding
When read load is the bottleneck, the cheapest correct answer is almost never sharding.
- Database is saturating and the team is proposing a sharding project.
- Single-region OLTP Postgres/MySQL, under ~2 TB, read-heavy (>80% reads).