Skip to content

Why Elixir

Why we build in Elixir

Elixir runs on the BEAM, the virtual machine Ericsson built for telephone switches that were never allowed to go down. We use it because it makes software that keeps working and stays easy to change.

Fails small

When something breaks, it breaks small.

  1. 1 Every part of the system runs in its own lightweight process.
  2. 2 Supervisors watch those processes.
  3. 3 When one crashes, its supervisor restarts it in milliseconds while the rest keep serving users.
prod · supervision tree live
Supervision tree: when a worker crashes, its supervisor restarts it. d. :one_for_one
Web.EndpointGET /orders 200 in 4ms
Devices.Worker.3crashed: :timeout
Supervisorrestarted Devices.Worker.3 in 2ms
Web.EndpointGET /orders 200 in 3ms

Real-time, built in

Live updates without a separate front-end app.

Dashboards, alerts and collaboration update the moment data changes. Phoenix LiveView renders them on the server, so there's one codebase instead of two.

Screenshot of a live UI

Fewer moving parts

One app instead of six.

Elixir runs web requests, live connections, background jobs and scheduled work side by side in one app. That leaves less to deploy, monitor and pay for, and fewer places for things to go wrong.

A typical stack

6 services + a database
  • Web servers ×3
  • WebSocket service
  • Cron server
  • Job queue Redis
  • Job workers ×2
  • Cache Redis
  • Database

With Elixir

1 app + a database

One Phoenix app

  • Web
  • Live updates
  • Background jobs
  • Scheduled tasks
  • Caching

Postgres

Jobs and schedules use Postgres (Oban), live updates use Phoenix PubSub, and the cache runs in memory (ETS). It's still one app to deploy.

Questions buyers ask

What buyers ask us

Can we hire Elixir developers after you hand it over?

Yes. There are fewer Elixir developers, but they're experienced, and we write code any of them can pick up.

Is it mature enough for production?

Elixir has been in production since 2014, on top of Erlang/OTP, which has run telephone systems for decades.

What will it cost to run?

Usually less than you'd expect: most systems we build are one app and one database.

What if you're not around?

You get documented, tested code and a walkthrough, so your team or another Elixir developer can take over.

Will it work with our existing systems?

Yes. We integrate through the APIs, databases and queues you already run.

Have something specialized to build?

Tell us about it. We'll tell you honestly whether we're the right fit.