Keepin up with Nun-db 2023

2022 was the year to change directions on Nun-DB. After driving some adoption in 2021, I decided to shift Nun-DB to be leaderless (Not depend on a single primary node to operate) to be more aligned with my goals of a never-down service. That cost us a lot of time invested in research and coding. Nevertheless, it was a fantastic year with lots of internal improvements, consolidation, and learning.

Improve debugability

We started the year creating a new command on Nun-db to help debug problem in running instances, this is more to sysadmins but it is important to expose data to Nun-db users without requiring them to know too much of Nun-db internals. We published that in the post

Improve stability

We also fixed a few internal bugs, after the rush of the previous cycles a few bugs were left on replication algorithms, and one of them resulted into the blog post An approach to hunt and fix non-reproducible bugs - Case study - Fixing a race conditions in Nun-db replication algorithm in rust.

First external contributor

We got out first external unknown contributor, there was being a few contributors to Nun-db code base other than me, but all of them were people close to me in many cases looking to learning Rust, but 2022 there was our first real external contributor, the bigger contribution here was to organize the env vars into a configuration module and I really liked the way it turned out to be checkout the Mr in Github, big thanks to thienpow.

A new storage engine

Last year we also re-wrote the storage engine for Nun-db, previously we use a lib a now we have a home made fast storage engine, you can read a bit more about that engine in the post The new storage engine of Nun-db (This post is not polished at all, I fogot to publish it last year and now I am publishing it today as I write this post in 2023). The code for it is in the PR

Improve replication checks and safety

We Improved the way to check for replication messages to ensure the replication nodes are working as expected and that resulted into a much more mature replicate algorithm, you can check that in the PR.

Argo as a Performance tool to test Nun-db

We also started doing performance tests with the introduction of argo to our tool belt, we shared a bit of that in the post Argo workflow as performance test tool.

Going leaderless

We worked for over 6 months on the leaderless features for Nun-db, but we were not able to merge it before the end of the year, because of that we will save the notes about it for the next post. Nun-db is not only going to a leaderless replication but now also working to became a local first db, and to became a new infra component for that kind of application, but that is the subject for our next post. For now you can check the 6 months running MR on the leaderless on Github.

Conclusion

When I started writing this post I was considering 2022 a slow year for Nun-db, now after analyzing all we have done it was an amazing year with lots of improvements and setting us to the future, 2023 promises to be an year focused in stabilization and documentation, I plan to write much more about Nun-db and its way to solve the problems we are trying to solve, see you guys during the year. Meet Nun-db on GitHub

Written on January 3, 2023