What other use cases of Elixir are there other than web development?

Elixir is a programming language for working in the Erlang ecosystem. The Erlang system is applied to any number of things where reliability (fault tolerance), concurrency and distribution are key features. Erlang was originally created for telecom systems, like phone switches, but has been applied to creating databases (e.g. Riak, CouchDB, Cloudant), online games, sports entertainment systems, systems for placing wagers, online communication systems like WhatsApp, media distribution applications… lots of things.

Now in some of those cases folks are using the Erlang language (rather than Elixir) but Elixir would be just as applicable in those cases as well.

Phoenix is the archetypal framework, written in Elixir, for creating an application with a web server. I’ve used Phoenix with Absinthe to create a web application that presents an GraphQL interface… but I’ve also used Elixir for “middle tier” systems (systems that handle the flow of information between a front-end application and a back-end system). I’ve also created utility applications that do things like scrape GitHub Repos and generate reports (scraping the repos in parallel).

Even more through the “Nerves” project you can create embedded systems that use Elixir. I have a Raspberry Pi based system I’ve been working on which interfaces with thermocouples and a fan to provide a barbecue controller (yes… you could go buy one of those, but where is the fun in that?).

So there are lots of uses outside of web development. The hallmarks of the platform are concurrency, resilience, and distribution - Elixir is a great fit for any system that needs those things.

4 Likes