Skip to main content

The story of the Elixir SDK

· 5 min read
Mihaela Vasile Patrascu

In the context of SaaS applications, having a tool that allows you to control different features and flag certain users is critical, given the uniqueness of their needs and the instability of new releases.

This is where the ConfigCat Elixir SDK's tale begins. This is the simplified narrative of a great open-source SDK, driven by highly-professional folks from three different companies, as told by one of its creators.

elixir-sdk source: elixir-sdk/GitHub

The creators

Let's have a look behind the scenes of this project. Shall we? Randy Coulman is one of the cool people who contributed to the creation of the Elixir SDK for an internal InfluxData project last fall. With nearly 30 years of expertise designing high-quality and sustainable software solutions, he was the technical lead of the InfluxData e-commerce team at the time.

Randy was such a great and highly professional fit for this project because, although he was not involved in the matter of choosing ConfigCat for feature flags integration, he has actively contributed to the entire project. What a Coulman!

Current work

Randy is currently working on a new project, as is his custom. Based on mix test.watch, a library initially developed by Louis Pilfold that allows you to automatically run your Elixir project’s tests each time you save a file, he has developed something called mix test.interactive, a new library that allows you to dynamically change which tests should be run with just a few keystrokes. You go, Randy!

Last but not least

Now let me introduce Igor Escobar, who was also involved in the second phase of the project.

At the time the project took place, Igor was working at Drover. Now he is the founder of ImageBoss and also a great husband. Check out his full activity on GitHub.

The story

InfluxData has started integrating ConfigCat's service into its internal apps about a year ago. ConfigCat provides SDKs for almost every programming language you can think of to make the process of integrating feature flags with various applications easier. However, at the time, the service did not offer an SDK for Elixir and had no plans to do so in the near future.

The SDK and its powerfulness

But here's the catch. The SDK is the foundation of the entire feature flags system. On the surface, there is a web UI for configuring the feature flags, but the actual evaluation is done locally in an SDK, which means you don’t have to wait for a request to ConfigCat on every action your application takes. You’ve got a local copy of the configuration that you evaluate… also locally. The SDK is pretty complex because it has to do the whole feature flag evaluation. And it's way too important to be ignored, that’s for sure.

Now, here comes the exciting part. Randy and his team were able to incorporate an internal Elixir SDK into their application with the help of ConfigCat's developer. Not only did they find a solution for their app, but they developed a new one. To be honest, I think that's pretty cool.

Unfortunately, due to time constraints and other competing priorities, the extraction of the new SDK to make it available to others did not occur at first, even though this was planned.

Open-source community

Now, watch this. The whole process of creating the Elixir SDK for ConfigCat is the first one to be completely community-driven. How cool is that? Let me tell you how they did it.

Hacktoberfest saves the day

Hacktoberfest is an open-source community celebration hosted by Digital Ocean each October that has already allowed beginners, software enthusiasts, and developers to contribute to open-source projects in the last few years.

hacktoberfest-2021 source: hacktoberfest.digitalocean.com

With the occasion of this huge event, Elixir's SDK was extracted, open-sourced, and released. ConfigCat's empty Elixir SDK page was already available on GitHub at the time. The entire procedure took a few weeks and was overseen by Lajos Szoke and the ConfigCat team.

Based on the prototype of the Elixir SDK, which was specially designed for InfluxData, Igor and Randy provided extra capabilities and established a new version of the initial SDK that was much more compatible with the rest of the products ConfigCat already have had, allowing easier overall maintenance in the future. The community would also benefit from the much-needed documentation.

Even though ConfigCat's engineers had little expertise with Elixir at the start of the SDK project, they have consistently learned and continue to do so to provide the finest feature flag services available on the market. Randy describes the entire process of developing a new SDK and working with them as a great learning experience. It began as a need at InfluxData and evolved into a helping hand for their great collaborators and the open-source community.

Summary

The Elixir SDK is now available for use, thanks to the folks from three different companies who struck a deal to develop it. It started as an internal need for one of them but soon turned into the coolest partnership between third parties with similar interests.

The best thing is that ConfigCat's Elixir SDK is now available to all of us, constantly documented and upgraded by a deeply committed community, so anyone, including you, can benefit from it.

Check out their full documentation right here. It’s Cat approved!

configcat-logo