Hello,

We've been using the Flight protocol similar to the way that the read path is 
described in 
documentation<https://arrow.apache.org/docs/format/Flight.html#downloading-data>.
 That is, services have a separate metadata server (at least logically 
separated such that a network round trip occurs for GetFlightInfo), which 
returns FlightInfo to be used to access data server(s). We follow a similar 
pattern for writes and exchanges, as well.

While the separate metadata concept is crucial for certain applications, we 
think other use cases could be made much simpler by skipping the metadata step 
altogether - in this case, clients would craft their own Tickets and talk 
directly to data servers for reads, writes, and exchanges. This would be nice 
when we're just looking for a "normal gRPC streaming call but with the benefits 
of Flight." For example, some services have a metadata server that returns 
FlightInfo that simply points clients back to itself, resulting in an 
unnecessary round trip since the GetFlightInfo is essentially a “noop” here.

I notice in the docs the statement "Of course, applications may ignore 
compatibility and simply treat the Flight RPC methods as low-level building 
blocks for their own purposes." Despite this, I wanted to reach out to see if 
there are any reference use cases that use Flight in this way. Are there any 
concerns that come to mind when adapting the Flight pattern like this?

Thanks,
Nate

Reply via email to