@garryyao
query('section.tasks.steps')
Parse query components to built an AST
Walk over the AST to check for cached
Reduce the query to contains only not cached
Queue the query and batch all queries with an interval
Actually issue the query and harvest response
Cache each response object