bkiran
Okay nice, seems like various storage services for a home lab setup. Seems like a cool project. Especially if you can distribute it across all those NAS's
I really like being able to manage the managing and host machine in one configuration. It's a blessing from an Op's perspective.
In my instance of creating server machines(cattle), the configurations are pretty light and what's important is the reproducibility aspect of it. If I need to take one down and rebuild another it takes about 10 minutes. All the upfront work of configuring Nix for that one machine has paid off.
I have some playbooks I setup to creating a new machine. All in all it takes about 10 min to get it up and running. Maybe not instant but at the moment I don't need anything else.
I would like to do without the headache of dealing with K8's installation or some orchestrator layer. I can "schedule" my on application instances at the size I'm working with.
Also, I run this setup on cloud vm(multiple actually). So it's not restricted to running on a single machine running in a closet.
There are some difference between the language libraries and documentation can be lacking around those language specific solutions. I'm hoping to add blog articles and or contribute back to the example of these repositories to help future users who want to dabble.
Check out my repo here for how I use it across Rust and Python, with Golang coming soon: https://github.com/lucidmq/lucidmq
It currently only has support for Rust and Python clients but working on expanding to node(JS) and C/C++ in the future.
https://github.com/bdkiran/nolan
General things that could help with this project:
- Single node only, add distributed support(based on raft?)
- Improve or replace the custom protocol for sending and receiving messages(I wrote the current one, it's not pretty)
- Update the CLI to allow for managing topics
If you're interested in contributing to a Go project, in the area of distributed systems check out the repo or send me a message with your ideas.