Now we have {entities:{"1":{}}} reprezentation of collection and we are sending it over the wire in its entirity. But what if every Entity will be streamed separately. Lets say we have an table in UI. When user renders the table we know the first viewport row position which typicaly will be 0. We know the size of the wiewport and so we know that we can load at least 40 rows/Entities. So we start to stream entities from 0 to 40 position. And they get rendered as they arrives (costly to rerender UI components for every state update?). In the background we can stream one more set of Entities so if user starts to scroll, data is already there. We maintain viewport 0 position row Entity id to know which records we should stream up and down.