You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Or a bit like iterators in Rust, but with opaque types.
Direction 3: Graphical
@partim suggested this. In this design, the queries would be declared along with the setup of the entire Rotonda configuration. They would be virtual RIBs that are connected to actual RIBs. Combining virtual RIBs would then create more complex queries. This would take the feature mostly out of Roto into Rotonda. Rotonda would then probably only expose some function to run the query. The entire configuration would be a graphical representation.
Other considerations
This is blocked at least by #102. If we want to interact with queries in a procedural manner, it is also blocked by loops not being implemented.
Finally we probably want to write filtermaps and use them in queries, this requires something like first-class functions. And that probably slippery-slopes into closures.
The text was updated successfully, but these errors were encountered:
We want Roto code to be able to query the RIBs. The design space is very big however. I see 3 main directions.
Direction 1: DSL
We add a
query {}
construct to the language that allows us to write queries with a custom syntax.Imagine something like (syntax infinitely bikesheddable, I don't know what this would mean exactly either):
Maybe this makes more sense as a top-level construct:
Direction 2: Builder
A more builder-like pattern, much like Datafusion LogicalPlanBuilder or Polars' expressions.
Or a bit like iterators in Rust, but with opaque types.
Direction 3: Graphical
@partim suggested this. In this design, the queries would be declared along with the setup of the entire Rotonda configuration. They would be virtual RIBs that are connected to actual RIBs. Combining virtual RIBs would then create more complex queries. This would take the feature mostly out of Roto into Rotonda. Rotonda would then probably only expose some function to run the query. The entire configuration would be a graphical representation.
Other considerations
This is blocked at least by #102. If we want to interact with queries in a procedural manner, it is also blocked by loops not being implemented.
Finally we probably want to write filtermaps and use them in queries, this requires something like first-class functions. And that probably slippery-slopes into closures.
The text was updated successfully, but these errors were encountered: