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.
---