[erlang-questions] How to Name Concurrency Patterns

Loïc Hoguin essen@REDACTED
Wed Feb 19 22:41:24 CET 2014

On 02/19/2014 10:14 PM, Joe Armstrong wrote:
> Hello, I'm giving a course in distributed and parallel programming in
> Erlang ...
> Next week I'll be talking about common concurrency patterns, I was
> talking with the course adviser, and I rattled off the names of a few
> concurrency patterns that were well-known and easy to explain. I said
> I'll do PUB-SUB, pipeline, map-reduce, parallel map, and so on.
> At this stage the course adviser said that a) things like PUB-SUB
> would not be familiar to the students and that b) It would take more
> than 5-10 minutes to explain PUB_SUB.

Your course adviser lacks imagination. It takes a few seconds to explain 
PUB-SUB. These things are PUB-SUB:

  *  Twitter
  *  Facebook
  *  Mailing lists
  *  IRC channel / group chat
  *  Newsletter

Most of these patterns can be explained with a fairly simple drawing.

pipeline: data -> intermediary -> result

map-reduce (I simplified, I'm no good at this ASCII stuff):

data -> intermediary -\
data -> intermediary ---> result
data -> intermediary -/

And so on.

A good drawing and a few known examples are worth a million words.

I would be interested to hear what name people suggest, but I'm afraid 
there's about as many concurrency patterns as there are possible 

I suggest calling the DNS pattern Howard and the load 
balancer-replacement pattern Clementine.

Loïc Hoguin

More information about the erlang-questions mailing list