For pure duckdb, you can put an Arrow Flight server in front of duckdb[0] or use the httpserver extension[1].<p>Where you store the .duckdb file will make a big difference in performance (e.g. S3 vs. Elastic File System).<p>But I'd take a good look at ducklake as a better multiplayer option. If you store `.parquet` files in blob storage, it will be slower than `.duckdb` on EFS, but if you have largish data, EFS gets expensive.<p>We[2] use DuckLake in our product and we've found a few ways to mitigate the performance hit. For example, we write all data into ducklake in blog storage, then create analytics tables and store them on faster storage (e.g. GCP Filestore). You can have multiple storage methods in the same DuckLake catalog, so this works nicely.<p>0 - <a href="https://www.definite.app/blog/duck-takes-flight" rel="nofollow">https://www.definite.app/blog/duck-takes-flight</a><p>1 - <a href="https://github.com/Query-farm/httpserver" rel="nofollow">https://github.com/Query-farm/httpserver</a><p>2 - <a href="https://www.definite.app/" rel="nofollow">https://www.definite.app/</a>