Simplify your stack with Elixir
Applications typically leverage many tools to get the job done. These additions aren’t free - they add complexity and the need for specialized skills.
The cool thing about Elixir is that you can replace many of those tools with just one — plain vanilla Elixir.
That means your developers’ impact level has just increased tremendously!
Here are some things Elixir can replace:
- Firstly, it’ll replace your programming language (duh).
- The actor model is an in-memory cache of your DB, it replaces tools like Memcache & Redis.
- The actor model makes delayed execution very easy. So you likely won’t need tools like Resque & RabittMQ.
- Each actor runs concurrently, so async execution is easy as pie.
- Tools like gen_stage make it easy to do event ingestion & processing, it can replace tools like Fink, Spark & Kafka.
- The actor model is great at publish/subscribe, you can easily build & distribute events in an event bus topology.
- The BEAM is a distributed virtual machine, that means you don’t need to build write RPC code or wrappers to glue your systems together. Calling a local object or remote object is nearly identical.
- The BEAM contains a builtin distributed storage engine called Mnesia, (though RDBMS & NOSQL work great too).
- The BEAM understands releases, its built to be always-on, so you can hot upgrade without stopping your system.
- I’ll think of one more later…. :D
This is why it’s such a cool language, it opens up way more possibilities than the languages that currently dominate. I encourage you to check it out, if you haven’t already.
This is the book that got me into it: https://pragprog.com/book/elixir/programming-elixir