Zig

On technical debt

2024-10-01

An LLM creating technical debt with the spelling. In this post, I want to talk a little bit about technical debt. In a recent conversation I had with one of our engineers, we sort of inadvertently enumerated some of the more pressing technical debts we have off top of our heads in our current infrastructure, which, now that I think about it, is quite a lot. But what is “technical debt”, really?

Programming · Software · Tech-Debt · Technical-Debt · Zig

4 minutes

Thoughts on Zig

2024-09-30

In continuation with my previous post about the new systems programming languages, I mentioned I was considering Zig as a potential complementary systems language to our main one, which is Go(lang). Well, for the past month or so, in my spare time, I tried writing something more substantial in it to understand the language more. For some time now, I’ve been “itching” to write something similar to Hashicorp’s memberlist library, but in a lower-level language for performance, smaller footprint and minimal network load. Now, I’ve used memberlist before, and it is a superb piece of code, but I wanted something that supports a consistent leader across the whole fleet. It’s a requirement to a system I plan on building in the near future (more on this in a later post). My top choices were C, Rust, and Zig, and as I said, I took a liking to Zig due to its promised simplicity, so I wrote it in Zig. The project is called zgroup, and you can check it out on GitHub if you’re interested. It’s still similar to memberlist but with the added capability of electing a leader across the whole group. It uses both the SWIM Protocol, which memberlist uses, and Raft’s leader election algorithm.

Distributed-Systems · Programming · Programming · Raft · Swim · Zig · Zig · Ziglang

2 minutes