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.

AstonJ

AstonJ

Some of the Erlang ones you might want to look at include:

There are loads of good Elixir books in our Learning Resources > Books section - many have reviews - well worth checking out just for the comments :023:

Last Post!

manhvu

manhvu

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

Where Next?

Popular in Chat/Questions Top

OmanF
In the attached screenshot (taken from an exercise in “Programming Elixir”) can be shown that BugReport is defined as a struct that, itse...
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
pdgonzalez872
Do we have a list of academic/research papers: about Elixir/Erlang? that use Elixir/Erlang? about the Beam? If so, could you please po...
New
Fl4m3Ph03n1x
Background Hey guys, recently I bought a book on TDD that I am reading. The books is really nice and has some really juicy things on arch...
New
phykos
In Ruby, which is very similar to Elixir I do this: def test yield end test do puts("sup there") end Here, the yield keyword will be...
New
dopomecana
The title of this topic may sound silly at the first glance. But why I trying to ask you guys is how to go to the next level? I am curre...
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

jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
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 40042 209
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement