- Short dynamodb video for paper: Goes into a few architectural ideas: (These are the ones I can remember right now but there are others. I’m just going to have to read the paper. :))
- Aim for predictability / consistency over absolute performance. They had a cache layer fronting the partition metadata service that meant the service was fast, healthy as long as the cache was there and the hit ratio was excellent but when the cache went away they found the service itself was too small to receive traffic directly
- Think carefully about where they put customer partitions and be adaptable based on how customers actually read data from them. Hard to predict sometimes apriori what data will be read most often. Last written is not always the case
- Use a token bucket algorithm to guarantee fairness in the system. If a client has a token availablethe query command is allowed to enter the system otherwise reject