Communicating sequential processes
Communicating Sequential Processes, or CSP for short, is used to describe how systems that feature multiple concurrent models should interact with one another. It, typically, relies heavily on using channels as a medium for passing messages between two or more concurrent processes, and is the underlying mantra of languages like clojure and golang.
It's a concept that is certainly growing in popularity, and there are a number of fantastic talks and books on CSP that you should definitely check out.
Note
I'd recommend checking out Communicating Sequential Processes by C.A.R. Hoare, which was published in May of 2015, the link for which is this: http://www.usingcsp.com/cspbook.pdf.
After some brief research on the topic, it's fascinating to see how certain problem sets can be abstracted out quite easily using this style of programming as opposed to your more traditional object-oriented setups.
PyCSP
PyCSP is a Python library that implements the core primitives found...