Write Sharding for Hot Partitions
Problem: leaderboard with partition key game_id → all writes to one partition.
Solution: shard the partition key:
let shard = rand::random::<u8>() % 10;
let pk = format!("GAME#{}-SHARD#{}", game_id, shard);
dynamodb.put_item()
.item("pk", AttributeValue::S(pk))
.item("score", AttributeValue::N(score.to_string()))
.send().await?;
let reads = (0..10).map(|shard| query_shard(game_id, shard));
let results = join_all(reads).await;
let total_score: u64 = results.iter().flat_map(|r| r).sum();