While Arrow Flight SQL (gRPC) has opened up a large amount of compatibility - the gRPC framework has some downsides:
- It does NOT play well with browser-based / javascript clients. We must have a nodeJS back-end server library to have front-end javascript connectivity to GizmoSQL - or use a websocket proxy.
- It takes a long time to compile - making builds somewhat painful.
We should convert the GizmoSQL server to use modern websockets with Arrow IPC for data transfer - for low-latency connectivity, high throughput, and maximum compatibility with browsers / javascript clients.
This would of course require that we update the client libraries for ADBC, JDBC, and ODBC - but it would be well worth it. We would also need to update the GizmoSQL UI, as well as any other popular clients/connectors (Grafana, dbt, SQLMesh, Metabase, Superset, Tableau, etc.).
Attached is a plan doc.
websocket-migration-plan.md
While Arrow Flight SQL (gRPC) has opened up a large amount of compatibility - the gRPC framework has some downsides:
We should convert the GizmoSQL server to use modern websockets with Arrow IPC for data transfer - for low-latency connectivity, high throughput, and maximum compatibility with browsers / javascript clients.
This would of course require that we update the client libraries for ADBC, JDBC, and ODBC - but it would be well worth it. We would also need to update the GizmoSQL UI, as well as any other popular clients/connectors (Grafana, dbt, SQLMesh, Metabase, Superset, Tableau, etc.).
Attached is a plan doc.
websocket-migration-plan.md