The book opens with a high level overview of the technologies on which Elixir is built: Erlang and the BEAM.
I’ve always benefitted from being familiar with the level below where I was programming. In Python, I’d look at the AST and bytecode; in Pascal, the p-code; in C, the assembly code, and in assembly code I had hardware emulators (and Soft-ICE back in the day).
One focus is a review of how you can use the Elixir/Erlang/BEAM environment to create self-contained server-side systems that include web server, background jobs, caches, crash recovery, etc.
Notable Notes and Quotes
- “Unless a system is responsive and reliable, it will eventually fail to fulfill its purpose.”
- “Concurrency is at the heart and soul of Erlang systems.”
- “Erlang processes are completely isolated from each other. They share no memory, and a crash of one process doesn’t cause a crash of other processes.”
- “Communication between processes works the same way regardless of whether these processes reside in the same BEAM instance or on two different instances on two separate, remote computers.”
- […] “BEAM concurrency and microservices complement each other well, and they are often used together, in practice.”
- “Elixir is an alternative language for the Erlang virtual machine that allows you to write cleaner, more compact code that does a better job of revealing your intentions.”
Quotes are excerpts From Elixir in Action, Third Edition, Sasa Juric. All notes and comments are my own opinion. Follow me at @rgacote@genserver.social