I think this also relates to one of the architectural discussions we've recently had around FIP-32 [1].
My understanding is that there is a useful distinction between *native Fluss operations* and *SQL/query execution*. For example, writes, metadata operations, and potentially lightweight native reads (such as point lookups) could continue to build directly on the fluss-rust foundation, whereas DataFusion would primarily serve the SQL/query path. This would allow the REST gateway to remain lightweight while keeping the query layer reusable for SQL-based protocols in the future. I don't think this necessarily changes the scope of FIP-49, but I do think it's an important architectural distinction as we evolve the gateway beyond the initial REST write MVP. [1] https://lists.apache.org/thread/sf0qfxhr9j2g0dtxvp586p9zknxvpx6x Best regards, David Am Fr., 31. Juli 2026 um 05:02 Uhr schrieb Liting Liu (litiliu) via dev < [email protected]>: > Hi, Junbo > > > Thanks for the detailed proposal. I have a couple of questions about the > technology choice and the future SQL path. > > For the current scope—REST writes and metadata/DDL—have we considered > implementing the Gateway with a Java/Netty REST stack backed by the > existing Fluss Java client? This would be similar in spirit to how Flink > SQL Gateway reuses Flink’s native Java stack and Netty-based REST > infrastructure. The Fluss Java client already supports append, upsert, > delete, partial update, metadata operations, and lookup. It would be > helpful if the FIP could compare this alternative with the proposed > > I also have a question about the future DataFusion integration. Is > DataFusion expected to execute SQL queries inside the same Gateway process? > If so, complex or resource-intensive queries could compete with REST > ingestion and metadata operations for CPU and memory, and a query failure > or OOM could potentially affect the entire Gateway. Do we plan to provide > admission control, memory and concurrency limits, query > timeout/cancellation, spilling, or process-level isolation? > > If the initial read use case is mainly primary-key or prefix lookup, could > we expose a lightweight lookup REST API backed directly by the Fluss > client, without introducing DataFusion? DataFusion seems more valuable when > the intended scope includes general SQL capabilities such as scans, > filters, aggregations, and joins? If that is the long-term goal, would it > be preferable to keep complex SQL execution in a separate optional SQL > service or worker process, so that it does not increase the failure domain > of the REST write Gateway? > > > From: Michael Koepf <[email protected]> > Date: Thursday, July 30, 2026 at 22:15 > To: [email protected] <[email protected]> > Subject: Re: [DISCUSS] FIP-49: Fluss Gateway REST API > > Hi Juno, > > Thanks for the FIP, great initiative. > > A question that comes to my mind: Why not expose metrics via vendor > neutral OTEL instead of limiting it to Prometheus? > -- > Best, > MKO > > > > On 30.07.2026, at 12:23, Forward Xu <[email protected]> wrote: > > > > Thanks junbo, > > > > The proposal looks good to me in general. +1 > > > > Best, > > Foward > > > > Junbo Wang <[email protected]> 于2026年7月30日周四 11:49写道: > > > >> Hi all, I'd like to start a discussion on FIP-49: Fluss Gateway REST > API. > >> > >> The proposal is available here: > >> > https://cwiki.apache.org/confluence/spaces/FLUSS/pages/444334561/FIP-49+Fluss+Gateway+REST+API > >> > >> This FIP is an extension of FIP-32 (Multiprotocol Query Gateway) [1] and > >> does not conflict with it. Following the earlier suggestion to split the > >> gateway work into focused FIPs, FIP-49 defines the REST write path and > DDL > >> / metadata management in detail, while REST read and the SQL path > remain in > >> the scope of FIP-32. > >> > >> In short, it proposes a standalone, stateless fluss-gateway process > (Rust, > >> axum + tokio, built on fluss-rust) providing: > >> > >> HTTP/JSON ingestion into KV and Log tables, at-least-once, with per-row > >> success/failure reporting > >> Full database / table / partition DDL > >> Pluggable client authentication, and a service / user (act-as) identity > >> mode towards Fluss > >> Multi-cluster routing, Prometheus metrics, a unified error model > >> > >> No Fluss server-side changes are required— the gateway accesses existing > >> clusters purely as a fluss-rust client. > >> > >> Looking forward to your feedback and suggestions. > >> > >> > >> > >> [1] https://lists.apache.org/thread/sf0qfxhr9j2g0dtxvp586p9zknxvpx6x > >> > >> > >> Best regards, > >> Junbo Wang > >> > >> >
