Github user jorgebay commented on the issue:

    https://github.com/apache/tinkerpop/pull/478
  
    > What makes `toListAsync()` more "fully async" compared to 
`promise(traversal::toList)`? Internally, from a Java perspective anyway, 
`toListAsync()` does the same thing, doesn't it?
    
    By fully async I meant asynchronous execution that doesn't block in any 
call and doesn't require a threadpool. All the way down, it would be based on 
futures / async operations. In java, it would mean no 
`CompletableFuture::get()` calls.
    That translates into supporting higher levels of concurrency as there is no 
threadpool limiting the amount of calls in parallel.
    
    For TinkerPop, it would require asynchronous strategies as currently the 
blocking calls are made in the `apply()` method. I've suggested an 
`applyAsync()` method for an async strategy interface that returns a 
`CompletableFuture`.
    
    For other technologies, the same logic applies as we shouldn't care about 
the underlying framework / network library (Python tornado / libuv / ...) or 
thread pools.
    For C#, it would be `Task` all the way down; for Python it could be async 
generators or futures all the way down; for Javascript, Promise or async 
callbacks; ...


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to