Directory-based sharding uses a lookup service to map keys to shards:
Lookup Table:
user_123 → Shard A
user_456 → Shard B
user_789 → Shard A
Advantages:
- Maximum flexibility in data placement
- Can move individual records between shards
- Supports custom placement logic
Disadvantages:
- Lookup service becomes a bottleneck
- Additional latency for every query
- Lookup table must be highly available
Use directory sharding when you need fine-grained control or when data access patterns are unpredictable.