Database
October 6, 2026
2 views
2 min read

Megabytes in milliseconds: How Fire TV uses parallel queries and vertical partitioning to serve millions of customers in Amazon DynamoDB

Curated by Patrick
Source: AWS Database Blog
Megabytes in milliseconds: How Fire TV uses parallel queries and vertical partitioning to serve millions of customers in Amazon DynamoDB
Tech Daily Byte Analysis

The Amazon Fire TV team discovered that storing an entire user’s watch progress as one compressed DynamoDB item was hitting two hard limits: the 400 KB per‑item ceiling and the 1 MB page cap for query results. As profiles grew—especially after a planned enrichment that would double record size—writes began consuming up to 100 WCUs per update, exhausting the 1,000 WCUs available to a single partition and driving throttling. By breaking each profile into a metadata item plus one small item per watched title, they reduced the write payload from dozens of kilobytes to a few hundred bytes, cutting the write‑capacity bill by roughly 97 % and allowing hot partitions to split more readily.

The new design also adds a hash prefix to the sort key, effectively sharding a user’s item collection into multiple exclusive segments. Each segment fits comfortably under the 1 MB response limit, so a single query retrieves it in one round‑trip. The client then issues the same number of parallel queries as there are segments, and the overall latency becomes the slowest segment’s response time rather than the sum of sequential pages. This technique lets Fire TV deliver the full watch‑history payload in under 10 ms on average (p99 under 50 ms) regardless of profile size, a performance tier that rivals dedicated caching layers while staying fully managed in DynamoDB.

The move signals a broader shift among high‑scale consumer services toward “application‑level” data modeling tricks that extract more performance from NoSQL stores without adding external caches. Vertical partitioning is already a common pattern for large items, but coupling it with hash‑prefixed keys to enable true parallel reads is less widespread and demonstrates how DynamoDB’s partition‑level limits can be sidestepped with clever key design. Competitors that rely on monolithic items or single‑threaded scans may face higher latency or cost as user data balloons, giving Amazon a subtle edge in the streaming‑device space.

Implications include a tighter coupling between application logic and DynamoDB key schema, which may increase code complexity and require careful monitoring of segment counts to avoid over‑parallelization. The approach also leans heavily on DynamoDB’s TTL feature for data aging, so any misconfiguration could lead to stale watch entries persisting longer than intended. Future work will likely explore automated segment sizing and dynamic hash prefixes to adapt to shifting usage patterns without manual redeployment.

Key Takeaways

Vertical partitioning reduced Fire TV’s DynamoDB write spend by about 97 % by turning large, infrequent updates into many tiny writes.

Adding a hash prefix to sort keys enabled parallel segmented reads that keep every profile fetch under a single 1 MB page, preserving single‑digit‑millisecond latency.

The redesign sidestepped the 400 KB item limit and the 1 MB query page cap, eliminating throttling risks on hot partitions.

Monitoring segment count and TTL settings will be critical to maintain performance and data freshness as profile sizes continue to grow.

About the Source

This analysis is based on reporting by AWS Database Blog. Here is a short excerpt for context:

How Amazon Fire TV redesigned its Continue Watching watch-progress data model on Amazon DynamoDB with vertical partitioning and hash-prefixed sort keys for parallel reads, removing item-size limits, cutting write costs by 97%, and keeping reads under 50 milliseconds at any profile size.
Read the original at AWS Database Blog

More in Database