krisleech

krisleech

Any books or resources to learn Erlang/Elixir OTP patterns?

Hey folks, I’ve been using Elixir for over a couple of years (phx, ecto, broadway, oban).

For this kind of work you do not tend, in my experience, to actually use OTP directly, i.e. write GenServer’s.

The libraries use them and you use the libraries.

You could program web apps in Elixir without needing to really know a great deal about processes/OTP.

Now I want to start learning OTP in depth, I’ve read a few Elixir books (Elixir in Action etc) in the past and just started reading an Erlang book. So I know the basics, what processes are, how to build something like a GenServer by hand, but not how to structure a topology for different use cases,

Are there any books or resources you would recommend which have common erlang/elixir patterns in terms of how to structure processes for different use cases?

It can be Elixir or Erlang, or indeed any BEAM language.

Cheers.

Most Liked

LostKobrakai

LostKobrakai

I’ve do not really have resources for like blueprints - even though there’s for sure ones like the manager and dynamic workers example of elixir in action.

However I think the usecases define the guarantees you need around isolation and startup/restart/shutdown ordering and usually those translate quite well to supervision trees.

This talk goes especially into the startup side of guarantees (mostly the second half), which often also neatly translate into the shutdown side.

I’d also study the supervision setup of e.g. cowboy(ranch) / bandit(thousand islands) / phoenix channels if you want some real world applications.

manhvu

manhvu

I came from the Erlang ecosystem, so I haven’t found many good OTP resources for Elixir (or maybe I just missed them). Most of the OTP documentation and books I recommend are written for Erlang, and they’re still highly relevant because Elixir runs on the BEAM and uses the same OTP principles.

My recommended resources for advanced OTP programming:

manhvu

manhvu

I really enjoyed Learn You Some Erlang for Great Good!. It explains concepts in a fun and easy-to-understand way.

Last Post!

Hermanverschooten

Hermanverschooten

I liked this one very much, Designing Elixir Systems with OTP, by Bruce (from @GroxioLearning) and James @JEG2

Where Next?

Popular in Chat/Questions Top

jsnoble
I come from a javascript background and I just starting learning elixir. I went through the basic tutorials but I want something deeper. ...
New
maqbool
what books/Resources do you recommend to learn about distributed system(theory)?
New
Lincxx
Hello, I’m sure this has been asked a bunch, but where to start. I do prefer vodeos over books, but recently I have found books to be mor...
New
maz
I’m getting this error: ## ** (Ecto.Query.CompileError) Tuples can only be used in comparisons with literal tuples of the same s...
New
koen_vb
Hi, I was looking for a pointer of how I could most easily start with phoenix regarding deploying it to something like linode or google c...
New
New
xgilarb
Hi there, I’m interested in using Elixir because of the rumors about the reliability of the Phoenix framework, and surprisingly, Elixir’...
New

Other popular topics Top

grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 54260 488
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 40165 209
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 42716 114
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement