If anyone is familiar with both GraphQL and Arrow, I'm curious how exactly
using
these two together might look

GraphQL is transport-agnostic, so you can theoretically use it over
anything, a
good case study being Dan Luu's article here:

https://danluu.com/simple-architectures/

  > "Some areas where we’re happy with our choices even though they may not
  > sound like the simplest feasible solution are with our API, where we use
  > GraphQL, with our transport protocols, where we had a custom protocol
for a
  > while, and our host management, where we use Kubernetes. For our
transport
  > protocols, we used to use a custom protocol that runs on top of UDP,
with an
  > SMS and USSD fallback, for the performance reasons described in this
talk.
  > With the rollout of HTTP/3, we’ve been able to replace our custom
protocol
  > with HTTP/3 and we generally only need USSD for events like the recent
  > internet shutdowns in Mali)."

I've seen also GraphQL done over Protobuf/gRPC, TCP/MsgPack, and a custom
binary
format:

-
https://github.com/google/rejoiner/blob/b1cb09e9bbf7ac68bfd9c93f23a73b691e6ead72/examples-gradle/src/main/java/com/google/api/graphql/examples/streaming/graphqlserver/GraphQlGrpcServer.java#L44
- https://github.com/OlegIlyenko/sangria-tcp-msgpack-example
- https://github.com/esseswann/graphql-binary

If someone were interested in using Arrow as the encoding layer, how would
this
work in practice?

Arrow messages need to have a well-defined schema, and GraphQL
queries return dynamic, nested data, so I'm having a hard time
understanding how
you'd go about representing/encoding that in an Arrow message.

Thank you =)

Reply via email to