I don't think I've actually publicized this ns but https://cljdoc.org/d/com.github.seancorfield/next.jdbc/1.3.955/api/next.jdbc.defer is a public experiment to allow multiple SQL statements to be executed "later", so that code can be written that is side-effect free, but still able to declare that it wants to modify the database (and the caller can make that happen by dereferencing the "deferred" SQL). The tests give some idea of its use: https://github.com/seancorfield/next-jdbc/blob/v1.3.955/test/next/jdbc/defer_test.clj I haven't fully documented this yet (nor really fleshed out how it should work in practice) but wanted to get some more eyeballs on it and perhaps get some feedback to guide the completion of the work.