Hi all,

Following up on this thread regarding the 4.x direction (from the discussion 
with Ken on PR #3725: https://github.com/apache/tinkerpop/pull/3725).

In 3.8 (#3527), I kept everything additive so we wouldn't break existing sync 
code, and I initially did the same on master. However, as Ken pointed out, 
since 4.x allows breaking changes, we have the chance to rethink this properly.

Ideally, for 4.x I'd love to build the Python driver natively async from 
scratch and avoid the sync layer / event-loop wrapping (`nest_asyncio`) in the 
driver altogether. Before going further with the 4.x PRs, I'd like to hear 
everyone's thoughts on moving `gremlin-python` to a fully native async design 
from the ground up in 4.x and how we want that API to look across the TinkerPop 
ecosystem.

Thanks,
Hugo


________________________________
De: master hugo <[email protected]>
Enviado: Monday, 20 July 2026 14:01:56
Para: [email protected] <[email protected]>
Asunto: [DISCUSS] Native-async WebSocket driver for gremlin-python 
(TINKERPOP-2774)

Hi all,
I've opened a PR (apache/tinkerpop#3527) implementing a native-async WebSocket 
driver for gremlin-python, addressing TINKERPOP-2774. The goal is to let 
applications use the full Gremlin DSL inside a running asyncio event loop 
without thread-pool wrappers or nest_asyncio, which has been a recurring pain 
point (see the JIRA ticket and several Discord threads).
Summary of what's in the PR:

  *
Low-level layer: AsyncAiohttpWSTransport, AsyncGremlinServerWSProtocol, 
AsyncResultSet, AsyncConnection, AsyncClient
  *
High-level DSL layer: AsyncDriverRemoteConnection, AsyncGraphTraversalSource, 
AsyncGraphTraversal, AsyncTransaction
  *
No existing code is modified, this is purely additive
  *
242 unit tests plus integration tests via Docker Compose

Yang Xia suggested I start this thread before going further given the size of 
the change, so I wanted to get community feedback on the design before 
continuing. Happy to walk through any part of the implementation in more detail.
Link to PR: https://github.com/apache/tinkerpop/pull/3527
Link to JIRA: https://issues.apache.org/jira/browse/TINKERPOP-2774

Thanks, Hugo

Reply via email to