Sharding is a proven software design approach used in distributed database systems to divide and distribute large datasets across multiple nodes or servers. In every shard, there is a subset or portion of the data which allows for parallel processing. It is an approach used to enable scalability and performance.