Context: I want to see if it is possible to build a timeline feed where the user is streaming new posts from Neo4j continuously as he scrolls (possibly by intermittently having to click Load more...).
Neo4j 4.0 has the possibility to stream query data using reactive streams (reactive programming). I also believe Neo4j recent versions have DateTime data types which nodes might have as a property (so modelling time with nodes by use of Time Trees is unnecessary/legacy). Such a property might be the time the node was created or updated (does Neo4j automatically store and index this?), or some other app-specific DateTime.
So my main question is:
Is is possible to reactively stream time-ordered nodes from Neo4j?
By streaming I don’t only mean from the point of view of the client app, but also from the actual database operations. So that Neo4j shouldn’t have to go over all the nodes first, and then perform some set operations on them all (like ordering by time), before returning a batch of the result set to the client.
I assume Neo4j could easily achieve this if it were a time-series database (or multi-modal?). Or if Neo4j allows indexing nodes in the graph based on DateTime properties? So that when traversing the graph only the chronologically first X amount of related nodes (comments to a post, for instance) are immediately seen and retrieved.
I would very much appreciate any an answer that could explain how Neo4j accomplishes retrieving specifically records ordered by (lets say) creation date as fast and efficiently as possible in a reactive/streaming manner without the database performing «unnecessary/roundabout» work to accomplish that.