This sounds like a bad first design: - didn’t just grab the whole video (or ~1min segment), but individual frames - put each detector in its own context, needing its own copy - created a StepFunction for each tiny piece This never would’ve passed design review when I worked at Amazon because the combinatorial blowout is obvious and predictable. I’m sure they switched to what was considered good practice even then: -…
If this was a system design interview, would this design be approved?
They decided to go the extra step and decode locally to save the S3 bucket entirely — so maybe not, as my change still has that (wasteful) step.
But the questions “can we group these operations together to save on network?” and “will we hit API limits due to fanout?” are ones I’ve had (in other contexts) during design reviews. I think it’s weird they missed that, initially.
Fanning a video out per frame and per operation seems inherently problematic; batching seems the obvious answer. Design review is meant to address that (variety of) concern.