Asked about The classic fundamentals
How would you scale a read-heavy service?
An answer that works
Cache first, since it is the cheapest win, with an expiry chosen from how stale the data may acceptably be. Then read replicas, accepting replication lag. Sharding only when writes are the limit, since it makes cross-shard queries expensive and the shard key is hard to change later.
Reading an answer is not being able to give one. The section that teaches this is The classic fundamentals, 6 hours of Distributed systems.
Learn this properlyAlso asked about Distributed systems
What is a cache stampede and how do you prevent it?Why do queue handlers need to be idempotent?Explain eventual consistency.How would you design a rate limiter?Fan-out on write or fan-out on read for a news feed?Estimate the storage needed for a year of chat history for 10 million daily users.Your service calls eight internal dependencies. Each promises 99.9 per cent. What can you promise?How do you make a payment operation safe to retry?