[erlang-questions] Classification of concurrency patterns
Sat May 15 10:49:18 CEST 2010
Hello Joe, and everyone on the Erlang list,
A colleague of mine commented that this list contains only transactional
patterns (i.e, take data, process it and output it), but no reactive
patterns (i.e, a system that responds to events over time without a single
output or a predefined point of termination).
One can observe several patterns for parallel reactive architectures, namely
by the way the process collaborate:
1) Clique - Every process communicate with almost any other process. Each
message includes the sender, to distinguish from other messages.
2) Broadcast - Processes do not collaborate with other specific processes,
but broadcast messages without expecting a specific reply.
3) Subscribe/Notify - Processes broadcast messages to other pre-subscribed
4) Star - "Peripheral" processes collaborate through a small group
(potentially just one) of "central" processes, who decide for the rest what
One can also observe between two kinds of parallel reactive behavioral
1) Independent - Each process decides for itself what is the next step,
regardless of other processes.
2) Consensus - All processes try to reach some agreement on the next step
(often using a broadcast or star pattern).
Would you consider these to be parallel patterns?
More information about the erlang-questions