Yeah, that makes sense, except I'd assume the api would return incremental updates to items like {'operation':'edit', 'id':'basketball121', , 'price':539}. But your example is still illustrative, the callback for the interval would just merge that change into the currentProducts and set state returning the whole thing. 

If I had a product list of 50K items, say they're nested (which is what my actual product is often like), would I still  setSate on the entire list, or would I want to come up with a strategy where I can setState on individual products somehow?