See v2.2.0-rc0 for the bulk of the changes here.
After 2.2.0-rc0 an XTDB Design Partner found out that Azure Event Hubs doesn't support Kafka transactions in the standard tier - this is a premium-only feature. We've therefore worked to remove this constraint from the 2.2.0 single-writer implementation - we weren't using the majority of the guarantees/functionality that Kafka transactions provide, so we were thankfully able to remove the dependency.
One unexpected but appreciated upshot of this is that ingestion becomes a little smoother - previously, we had a small pause when committing the Kafka transaction as this is a synchronous call, but now we're able to completely pipeline the transaction resolution on the leader.
Clojure API implementation
We've updated the implementation of the Clojure xtdb.api to use ADBC where possible. Now, if given a java.sql.Connection it will still use the PGJDBC driver over the wire, but you can also supply an ADBC Connection to xt/submit-tx!, xt/execute-tx! and xt/q, with which XTDB will communicate in-process.
We've seen an up-to-3x performance improvement between ADBC and the PG wire-protocol - entirely expected for in-process vs over-the-wire but useful nonetheless!
Upgrading from 2.2.0-rc0
Due to the above transactionality change, upgrading from 2.2.0-rc0 in a multi-node setup requires some care.
The easiest solution here, if appropriate, is to turn all of your 2.2.0-rc0 nodes down, and then turn up your upgraded nodes.
If you require a green/blue deployment, please get in touch with us at hello@xtdb.com and we can arrange a stepping-stone release for you.
For clarity, this doesn't apply to upgrading directly from 2.1.0 to 2.2.0-rc1 - this can still be done in a green/blue manner following the same instructions as in the 2.2.0-rc0 release notes.
Cheers
Especially, thanks to the Design Partner in question for being a long-time early adopter of XTDB and helping us unearth these kinds of issues. 🙏
As always, let us know if you have any questions!
James & the XT Team
hello@xtdb.com