Replies: 1 comment 14 replies
-
|
It looks a quite interesting idea ! At first, I think we can refer how other BI tools handle datasources.
And, I think that there are topics we can think about.
Anyway, we can start from rough sketch of the architecture, I think. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I was thinking we could split out the less-used query runners — especially those with awkward or conflicting dependencies — into separate virtual environments inside the Docker container, and invoke them as subprocesses.
These runners could be bundled as independent packages or even standalone projects, with a very simple, well-defined protocol for execution. That would let us effectively stop maintaining their dependency trees in the main Redash codebase. Down the line, this also opens the door to non-Python runners if someone prefers that.
Upsides
• Much simpler dependency management for the core codebase
• Easier and safer automated dependency upgrades on a regular cadence
• Smaller memory footprint for the main processes
Downsides
• Added latency from spawning a subprocess per query
• Some upfront complexity in designing and wiring the protocol
Overall, this feels like a reasonable tradeoff to reduce long-term maintenance pain and isolate problematic dependencies.
Beta Was this translation helpful? Give feedback.
All reactions