quick status update on the xtdb2 migration. In addition to https://clojurians.slack.com/archives/C013Y4VG20J/p1758282350537819, I've done two main things so far:
• figured out what functions com.biffweb will provide for working with XTDB2. https://github.com/jacobobryant/biff/blob/7e93a0e79b8f10052af7c34aa5b6d00b4c34375b/src/com/biffweb/impl/xtdb2.clj. It's much smaller than the Biff/XTDB1 API since I'm no longer providing a "merge/update" operation: XTDB2 has it built-in (yay). Mostly what Biff will provide is:
◦ a use-xtdb function that calls start-node for you with some default config
◦ some wrappers for the :put-docs and :patch-docs operations that add malli schema validation
◦ a couple helper functions for generating SQL strings, which I expect will take you pretty far. And then if you want something more powerful you can use https://github.com/seancorfield/honeysql.
• done a bunch of query performance benchmarking and chatting with the XT team about best practices
◦ e.g. it turns out that for best performance you'll want to do prefix stuff with your UUIDs so that you get good locality
Next up, I'm making another version of the authentication module that uses xtdb2, and I'll update the starter project to use xtdb2. At that point I'll make an official pre-release of the xtdb2 migration: by default biff will still be on xtdb1, but anyone who wants to try out xtdb2 can update their biff deps to use the branch with the new stuff on it, and/or make a new project based on the new xtdb2 starter.
Then I'm going to migrate yakread to use xtdb2, which will probably take... a bit. That should help iron out any issues before officially migrating Biff over. Once that's done I'll need to redo the tutorial app and reference docs, maybe various other parts of the website. then we should be good to go. Maybe it'll be ready in time so everyone can spend the holidays migrating their apps over 🎅
Note that all the XTDB1-related functions in Biff's API will remain there, they just won't work unless you have the XTDB1 dep. If you want to keep using XTDB1, you'd just need to exclude XTDB2 from your deps and add the XTDB1 deps back in.
nice one @foo 👌 obviously more'n happy to answer any XT2 questions that Biff users might have, give us a shout 🙂