DR1N0 commented on PR #3285:
URL: https://github.com/apache/tinkerpop/pull/3285#issuecomment-3640003368
Hi @spmallette !
While still keeping a websocket port for interactive console usage, our
server side provides a gRPC port for production traffic, which has such
constraints:
- Does not support session (conflicts with connection pooling and load
balancing)
- Bytecode only (server requires `"processor": "traversal"`, rejecting
string queries likely for performance, security and stateless design)
`gremlingo.DriverRemoteConnection` is tightly coupled to websocket transport
so we created a custom GrpcRemoteConnection. They look basically similar, take
the `SubmitByteCode` function as an example:
1. We extract the bytecode from gremlin traversals (standard API)
2. Serialize with `gremlingo.MakeBytecodeRequest` and
`GraphBinarySerializer.SerializeMessage` **exposed in this PR**
3. Send it over gRPC instead of websocket
4. Deserialize with the `GraphBinarySerializer.DeserializeMessage`
**exposed in this PR**
5. Return standard `ResultSet`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]