I like the idea of consolidating to a single protocol and HTTP > websockets sounds reasonable to me.
I was wondering if it would be worth moving to gRPC instead of HTTP 1.1/1.2 though. There's some interesting benefits, such as bidirectional streaming and backpressure. This would be beneficial if TinkerPop ever wanted to have an official bulk loader of some sort. That's just my 2 cents. Overall replacing the websockets sounds like a good idea. - Lyndon On Tue, Feb 27, 2024 at 2:29 PM Ken Hu <kenhu...@gmail.com> wrote: > Hi All, > > I would like to start the discussion of making HTTP the only protocol that > Apache TinkerPop supports starting with the next major version. There are > several reasons I'm suggesting this. First, we already support both > WebSockets and HTTP in Gremlin Server which causes a maintenance burden of > having to support both. Also, I ran some tests and a streaming version of > HTTP using chunked transfer encoding performs just as well as streaming via > WebSockets so there won't be a performance loss in terms of latency. > Second, HTTP is significantly more popular so it will be easier for other > third party clients to connect to. Third, this is an opportunity to rework > the remote Transaction API which in its current form causes unnecessary > complexity in the server. This will also serve as a good opportunity to > make the connection options more similar among all the GLVs. > > I've experimented with replacing WebSockets with HTTP (both 1.1 and 2) and > noticed similar performance in most cases. For HTTP/1.1, there was some > slowdown in cases where thousands of queries with few results were issued > per second as lots of HTTP connections needed to be opened, but I feel like > this isn't a practical use case. My recommendation for now is to go with > HTTP/1.1 as it has all the features we need and it has mostly been > implemented already on the server side. > > To ease the transition, I'm suggesting that we maintain WebSockets for the > foreseeable future in the 3.x line while the 4.x line is moved to use HTTP > exclusively. This will also give more time for us to build out support for > transactions over HTTP which is the only missing feature that is supported > when using WebSockets. > > I'd like to hear any thoughts regarding this. > > Thanks, > Ken > -- *Lyndon Bauto* *Senior Software Engineer* *Aerospike, Inc.* www.aerospike.com lba...@aerospike.com