Meta

Scaling services with Shard Manager

Aug 24, 2020Gerald Guo, Thawan Kooburat
Scaling services with Shard Manager
SummaryAI, from the source post

This post introduces Shard Manager, a generic platform developed at Meta to address the problem of duplicated custom sharding solutions across teams. It details the concept of sharding, contrasting it with hashing, and explains the need for shard management capabilities like failover, load balancing, and shard scaling. The post categorizes sharded applications into three types (primary only, secondaries only, primary-secondaries) and outlines the three-step process for building applications with Shard Manager: implementing a shard state transition interface, providing intent-based specifications for constraints, and using a common routing library. It highlights Shard Manager's wide adoption, managing tens of millions of shards on hundreds of thousands of servers across hundreds of applications, and its integration into the overall infrastructure ecosystem.

More from the Scalability and Large-Scale Systems Engineering trail