I found this book very helpful as a supplement to "Crafting Interpreters". The BEAM has a lot of interesting features that many mainstream languages don't. I found the parts about processes, tagging, memory and reduction counting (chapters 3-5 and 11) especially interesting.
The book is clearly very unfinished still, but what exists is very good. Got my mind spinning on what a good statically typed language running on a VM could look like.
How do the supervisor trees avoid a single point of failure? Let's say I build "etcd in Erlang". How would I tell the cluster that there should be N processes running, each on a different node? And is there anything in OTP that would help me elect a leader or do I still have to implement that myself?
I have no experience with OTP but have read some books and did toy projects.
If you’re intereste in BEAM and, like me, prefer to digest those things on a practical application, Tsoding did a very nice video about it recently:
Past discussions:
https://news.ycombinator.com/item?id=14061985
https://news.ycombinator.com/item?id=23718278
https://news.ycombinator.com/item?id=17003897