Following couple of short videos should interest you. How simple primitives can be used to build mechanisms. These are part of Erlang MOOC.
1. Joe talks about 'Turning Sequential Code Into Concurrent Code' https://www.youtube.com/watch?v=brklJ6yTH50&list=PLlML6SMLMR...
2. Next, 'Abstracting Patterns of Concurrency': https://www.youtube.com/watch?v=cvtrxeh8ZA8&list=PLlML6SMLMR...