New Issue: Design for Inter Process Communication (IPC) in Arrow

18131, "ShreyasKhandekar", "Design for Inter Process Communication (IPC) in Arrow ", "2021-07-27T18:38:09Z"

Parent Issue: #18127

Record batches can be read and written using streams or on file. (That is how arrow works)

The difference being a file reader must be seek-able.

The IPC Format is also pretty involved but it only offers solutions using which we can serialize the data we have into different kind of formats.

The actual ability to send data is not yet in the C interface.

Data can be read from, written to, and serialized into streams using record batches, feather file format (This is the .arrow file extension), and even csv files (read only).

Convert them into buffers and they can be sent over streams for communication.

There is also IPC options classes like GArrowReadOptions and GArrowWriteOptions which can be used to specify how we want our data to behave when reading and writing.

This is also a very involved class hierarchy and some of the functions' jobs are not clear to me.