Hi all,

I am looking to rewrite the current transport layer of the Gremlin-Python
client to use AIOHTTP [1] instead of Tornado. My plan is to keep the
current abstract base class the same and simply rewrite the underlying
functions to utilize AIOHTTP.

My plan is to use AIOHTTP v3.7.x, which supports Python 3.6+. This will
deprecate support of older Python versions, but the current docker Python
version for the repository is 3.6, so this should not pose a problem.

I have done some prototyping and testing and found the rewrite fixed the
following errors:

   - Event loop issues when using Tornado [2]
   - Heartbeat timeout support [3]
   - Multithreaded DriverRemoteConnection [4]
   - Build asyncio task errors [5]


Because my plan is to rewrite the transport layer using the same abstract
base class, we have the option of keeping the old Tornado library as is and
deprecating it while making the AIOHTTP implementation the default
implementation. Otherwise we can fully remove it. I am fine with either
option but wanted to get some other opinions on it.

Please let me know your thoughts around this and I will take it all into
consideration before generating a pull request.

[1] https://github.com/aio-libs/aiohttp
[2] https://github.com/jupyter/notebook/issues/3397
[3] https://issues.apache.org/jira/browse/TINKERPOP-1886
[4] https://issues.apache.org/jira/browse/TINKERPOP-2388
[5] https://issues.apache.org/jira/browse/TINKERPOP-2484

-- 
*Lyndon Bauto*
Senior Software Developer
Bit Quill Technologies Inc.
lynd...@bitquilltech.com
https://www.bitquilltech.com

Reply via email to