Remix.run Logo
klysm 3 days ago

We do this with DuckDB, and leave the connection in read only mode, exposing the database over HTTP. SQL injection by design?

crabmusket 3 days ago | parent [-]

Cool to hear I'm not off the deep end. Have you written anything up on this, or were you inspired by anything else? How has it worked out for you?

klysm 3 days ago | parent [-]

haven’t written anything up on it, but I wouldn’t use my anecdote as an indication we aren’t off the deep end together!

At a high level, we use DuckDB as an in-memory OLAP cache that’s invalidated via Postgres logical replication.

We compute a lot of derived data to offer a read-heavy workload as a product.

Possibly the most dubious choice I tried out recently was letting the front end just execute SQL directly against DuckDB with a thin serialization layer in the backend.

The best apart about it is the hot reload feedback loop. The backend doesn’t have to rebuild to iterate quickly.