Oct 30, 2017

Sharding is the act of horizontally partitioning your data.

This means that data resides on specific servers and is retrieved using a shard key. For example, you may partition data per project and use the project ID as the shard key. Sharding a database is interesting when you have a very high write load (as there's no other easy way of balancing writes other than perhaps a multi-master setup), or when you have a lot of data and you can no longer store it in a conventional manner