Challenge 2: Decide — Bucket or Not? — Possible Solution ==================================================================== YES, this should use the bucket pattern. WHY: one reading every 5 seconds is 12 readings per minute, 720 per hour — for a single workout (typically 20-60 minutes), that's easily several hundred to over a thousand tiny documents, each holding essentially nothing but a timestamp and a number. That's precisely the "many tiny, frequent documents" signal the chapter names: a large document count relative to how little each document actually holds, plus an index entry paid for every single one of them. PROPOSED BOUNDARY: bucket per-workout, not per-minute. A workout is a natural, bounded unit — it has a clear start and end, it's the unit the app actually queries by ("show me this workout's heart-rate graph"), and even at one reading every 5 seconds, a full hour-long workout is only 720 readings — comfortably small for a single document, nowhere near MongoDB's 16MB limit. Per-minute would be technically valid but adds unnecessary complexity: the app would need to query and stitch together many bucket documents just to render one workout's graph, when the natural query boundary (one workout) already gives a bucket size that's small enough to keep as one document.