How we avoided Redis thanks to Mnesia
Redis is an open-source in-memory store. You can use it as a cache for your web workloads, as message broker for your batch jobs, and many more.
Over the years, it became a very prominent brick in a lot of technical stacks, it is not really a surprise, Redis is a great technology.
Why should we want to avoid it then?
At Link Society, we built a Cloud Native Supervision Engine, think Nagios or Icinga’s alerting but with containers. Kubirds is a Kubernetes Operator written in Elixir, allowing you to define your supervision workflows with custom resources.
Thanks to Elixir’s distributed computing tools, we made Kubirds highly available quite easily. If you want more informations on how we achieved this, check out this story I’ve written a while ago (I should continue this series by the way…).
Long story short, Kubirds uses TektonCD to schedule the supervision workloads. Units are executed periodically and Reactors are executed in response to the Units results. Those custom resources are “compiled” to a TektonCD pipeline.