Monday, 06 January, 2020
Development Diary #3
2019 was a pivotal year for XTDB that surpassed our reasonable expectations, leaving us with an abundance of reasons to be excited for the roadmap and year ahead.
Whether you are a client, a partner, or just someone with a passion for simpler technology, we hope you find XTDB to be an empowering database option for your upcoming projects.
Releasing 1.6
Just before the holidays began we released 1.6
(specifically
19.12-1.6.1-alpha) which included a broad mix of changes. If you’re looking for the complete list, see the
CHANGELOG, but these are
the highlights:
-
A new Docker Hub image of an XTDB HTTP node built and deployed using the
xtdb-docker
module -
Following a change to the sorting of
tx-id
we have bumped the node index version to5
which means a re-index of all XTDB nodes using the source transaction and document logs from Kafka (or JDBC) is required. Therefore any index backups/snapshots will need archiving otherwise restored nodes will fail to start. If you need help or guidance please get in touch. See issue #441 -
We have removed the ability to specify time ranges when using the
evict
command. Instead the full timeline of document versions for a given entity will be evicted by default. When attempting to re-index previousevict
commands that do include time ranges, the indexer will simply stop and give you the opportunity to consider migration of document versions that you wish to keep. We intend to expand the possibilities and improve the user experience for any future implementation of time ranges for eviction. If you relied on this functionality then please let us know so we can re-prioritise the new solution. See PR#438 -
The start and end valid-time semantics for
put
anddelete
have been made consistent and intuitive. This now means that specifying an end valid-time with these operations will slice the entire section of the timeline instead of only taking effect up until the last document version within that range. See issue #326 -
Support for Java collection types with
submitTx
has been added which should improve productivity when using XTDB from Java. See issue #372
Looking ahead
Upcoming priorities for the next release include:
-
Prometheus metrics
-
Transaction ingestion hooks that can be used for validation and subscription processing
-
A new
await-tx
API to augment and partially replacesync
-
Incremental changes to the
evict
operation behaviour -
Ingestion performance improvements
Anyone who read our site:/blog/dev-diary-oct-19/[previous post] may be curious for news about the Beta programme and General Availability plans - I will be covering that in a subsequent post very shortly.
We also started running our development showcases publicly which gives you an opportunity to meet the team, see what we’ve been busy thinking about and discuss new features whilst we’re still building them. Recordings are available on our YouTube channel. Follow us on Twitter or join the 'Discuss XTDB' forum to stay notified about upcoming showcases.
Finally, thank you to everyone that has supported the project and expressed excitement about XTDB and bitemporality - your feedback is always invaluable! In particular, thank you to the wonderful contributors who have been sharing their experiences:
-
Avisi’s database migration story for their Atlassian Marketplace apps
-
Enzzo’s Clojure
graph-demo
, also featuring Fulcro and Pathom (using EQL as a kind of "pull syntax" for XTDB!) -
Jorin’s experience report on using XTDB for his collaborative event planning website (just a "toy project")
-
Ian’s Kotlin interop example
-
Nikita’s grumpy blog engine powering the hilarious yet depressing grumpy.website
-
Felipe’s work on an activities system for Lambda Island
p.s. the banner photo of Jon speaking on the "Dealing with Data" panel was taken during Clojure/north, where XTDB was first unveiled last April (back when it was still known as "Crux"). Clojure/north is happening again this year 25-26th June, in Toronto. Incidentally, I hear there’s a once-in-a-lifetime conference happening in London on 10th July…
See you around!