upvote
The use case is local user DuckDB talking to MotherDuck for $.

This is not commercially a terrible idea. Why keep paying Snowflake for bog-standard SQL query workload when SF makes it easy to migrate to Iceberg & commodity engines like MotherDuck?

reply
Hello, DuckDB DevRel here. Quack is independent from MotherDuck. MotherDuck has its own proprietary protocol, which has been around for years and it supports things like dual execution – see more here:

https://duckdb.org/quack/faq#what-is-the-relationship-betwee...

Of course, in the future MotherDuck can also support Quack, but this is not the only interesting use case for Quack.

reply
Sure! Not knocking the architecture: Building out peer-to-peer federation in place of client/server makes perfect sense for DuckDB. And I’m a big fan of owning the protocol so you can optimize it to internal structures.

Just making the point that DuckDB is disruptive technology & what it’s most likely to disrupt.

reply
MotherDuck is very expensive.
reply
Compared to what exactly? Snowflake? Hiring an engineer to deploy DuckDB? A hobby project? FWIW I work at MotherDuck so obviously biased, but curious to hear what makes you say that.
reply
"moving data around" is what millions of people of do all day, every day.
reply
uh, doing analytics type queries on large datasets that postgres would choke on, as an RPC? I'm using it (ducklake specifically) to build a lakehouse RPC server that can scale horizontally based on resource utilization in k8s.
reply
Right, I get that usecase. You have to crunch numbers that sit somewhere, and store the outputs in the same place. DuckLake is great for that. But where does this DuckDB client-server setup fit in?
reply
Sounds like it means you don't have to wire up the RPC server yourself anymore? Just build a docker container that invokes this quack server command, expose it over the network and connect to it from remote clients using your own access controls?

Ducklake handles the metadata and storage, but a local duckdb instance connected to it still has to do the compute itself. This lets you federate access to the compute.

Fun for me, I just finished a big streaming implementation doing essentially the same thing in Go-gRPC with arrow table record batches. It was fun though.

reply