Sharding a database is a common scalability strategy for designing server-side systems. The server-side system architecture uses concepts like sharding to make systems more scalable, reliable, and performant. Sharding is the horizontal partitioning of data according to a shard key. This shard key determines which database the entry to be persisted is sent to. Some common strategies for this are reverse proxies. Database interviews ask for concepts like sharding to make databases more performant and available. This makes horizontal partitioning a logical choice. Looking to ace your next interview? Try this System Design video course! 🔥 https://interviewready.io 00:00 Introduction 00:52 Sharding - The problem 01:59 Horizontal Partitioning 03:20 Considerations 04:30 Potential Drawbacks 08:46 A challenge! Video lectures, architecture diagrams, capacity planning, API contracts, and evaluation tests. It's a complete package. Horizontal vs. Vertical partitioning: https://stackoverflow.com/questions/18302773/what-are-horizontal-and-vertical-partitions-in-database-and-what-is-the-differen Consistent Hashing: https://en.wikipedia.org/wiki/Consistent_hashing https://www.youtube.com/watch?v=zaRkONvyGr8 Sources: https://medium.com/@jeeyoungk/how-sharding-works-b4dec46b3f6 https://medium.com/@jeeyoungk/why-i-love-databases-1d4cc433685f https://www.quora.com/What-is-the-difference-between-consistent-hashing-and-sharding-in-a-distributed-system https://en.wikipedia.org/wiki/Partition_(database) Designing Data-Intensive Applications - https://amzn.to/2yQIrxH #database #sharding #systemdesign