Keepin up with Nun-db 2023
2022 was the year to change directions on NunDB. After driving some adoption in 2021, I decided to shift NunDB 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
- Code Coverage for Rust Projects with GitHub Actions
- NunDb is now referenced in the Database of Databases
- Real-time Medical Image Collaboration POC Made Easy with OHIF and Nun-db
- How to create users with different permission levels in Nun-db
- Match vs Hashmap! Which one is faster in rust?
- Towards a More Secure Nun-db: Our Latest Security Enhancements
- Building a Trello-like React/Redux App with NunDB with offline and conflict resolution features
- Introduction to managing conflicts in NunDB
- Keepin up with Nun-db 2023
- The new storage engine of Nun-db
- Stop procrastinating and just fix your flaky tests, it may be catching nasty bugs
- An approach to hunt and fix non-reproducible bugs - Case study - Fixing a race conditions in Nun-db replication algorithm in rust
- NunDB the debug command
- Keeping up with Nun-db 2021
- Writing a prometheus exporter in rust from idea to grafana chart
- Integration tests in rust a multi-process test example
- Leader election in rust the journey towards implementing nun-db leader election
- How to make redux TodoMVC example a real-time multiuser app with nun-db in 10 steps
- A fast-to-sync/search and space-optimized replication algorithm written in rust, The Nun-db data replication model
- NunDb How to backup one or all databases
- How to create your simple version of google analytics real-time using Nun-db
- Migrating a chat bot feature from Firebase to Nun-db
- Keepin' up with NunDB
- Going live with NunDB