Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Channels & Concurrency: Go, Clojure, Erlang, Ha...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Oleksii Kachaiev
August 03, 2013
Programming
4.9k
9
Share
Channels & Concurrency: Go, Clojure, Erlang, Haskell
The idea, benefits, theory and practise.
Oleksii Kachaiev
August 03, 2013
More Decks by Oleksii Kachaiev
See All by Oleksii Kachaiev
Counting HTTP with QUIC & HTTP/3
kachayev
2
300
Talking SQL to Strangers
kachayev
3
620
Counting HTTP: 0.9...3
kachayev
1
120
Managing Data Chaos in The World of Microservices
kachayev
3
690
Deep HTTP Dive Through Aleph & Netty
kachayev
6
4k
Keep Your Data Safe With Refined Types
kachayev
4
1.5k
Clojure at Attendify (2nd ed)
kachayev
5
1.7k
Clojure at Attendify
kachayev
4
380
Finagle & Clojure
kachayev
6
1.4k
Other Decks in Programming
See All in Programming
Oxlintとeslint-plugin-react-hooks 明日から始められそう?
t6adev
0
280
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
630
GitHubCopilotCLIをはじめよう.pdf
htkym
0
210
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
100
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
24
14k
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
2
140
mruby on C#: From VM Implementation to Game Scripting (RubyKaigi 2026)
hadashia
2
580
Coding as Prompting Since 2025
ragingwind
0
840
CDK Deployのための ”反響定位”
watany
5
800
AIと共に生きる技術選定 2026
sgash708
0
100
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
970
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
290
Featured
See All Featured
A designer walks into a library…
pauljervisheath
211
24k
Rails Girls Zürich Keynote
gr2m
96
14k
What's in a price? How to price your products and services
michaelherold
247
13k
4 Signs Your Business is Dying
shpigford
187
22k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Designing Powerful Visuals for Engaging Learning
tmiket
1
350
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
360
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Practical Orchestrator
shlominoach
191
11k
A better future with KSS
kneath
240
18k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
Transcript
Channels & concurrency 2013 (c) Alexey Kachayev
Channels Idea
Idea •Hoare’s CSP •Erlang / Limbo / etc •Transport level
•File name / File descriptor •Message Box / Queue
Channels Go(lang)
Go
Go (1)
Go (2)
Go (2) fan-out fan-in timeout
Channels Clojure
Clojure Alexey Kachayev, https://gist.github.com/kachayev/3146759
Clojure
Clojure
Clojure
Clojure Michael Peterson, https://github.com/midpeter444/go-lightly
Clojure
Clojure core.async
Idea •Library (just) •(chan) •Blocking •Buffers •(go) macros •Deadlocks (?!?)
Clojure
Clojure
Channels dig deeper
Why? •Streams •Decoupling •Composability •Patterns
Channels Concurrent ML
CML
Channels Erlang & composability
Channels: Erlang https://gist.github.com/kachayev/5426175
Idea •map •filter •fork •zip, zipwith •take, drop •etc
Erlang
Erlang
Erlang
Erlang futures?
Erlang
Erlang
Channels Scala & Eventsourced
Scala
Scala channel
Channels Cloud Haskell & Types
Haskell
Haskell channel
Contacts twi: @kachayev github: @kachayev work: attendify.com