Skip to content

Decouple flight logic from server backends

Patrick Godwin requested to merge decouple_flight_logic into main

This merge request modifies the two ServerBackend base classes to decouple the Flight logic from the server backends. As a result, backends only need to worry about providing the relevant information and all the tedious Arrow/Flight-specific handling is handled by the base classes.

For a backend that doesn't provide publishing capabilities, they need to provide the following:

  • stream: Serves timeseries as SeriesBlocks.
  • describe: Returns channel metadata for each channel as Channels.
  • find: Matches channels and returns as Channels.
  • count is provided by find automatically, but the backend can optionally redefine this as needed. For example, the NDS2 backend redefines this and calls count_channels internally via an NDS2 request.

For a backend that also provides publishing capabilities:

  • publish: Returns connection info as a dictionary of string key-value pairs.
  • partition: Takes Channels, returns Channels with their partition IDs set.

Also changes the hybrid backend to use the new Muxer provided in the Arrakis client.

Closes #14 (closed).

Edited by Patrick Godwin

Merge request reports

Loading