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
Oleksii Kachaiev
August 03, 2013
Programming
9
4.8k
Channels & Concurrency: Go, Clojure, Erlang, Haskell
The idea, benefits, theory and practise.
Oleksii Kachaiev
August 03, 2013
Tweet
Share
More Decks by Oleksii Kachaiev
See All by Oleksii Kachaiev
Counting HTTP with QUIC & HTTP/3
kachayev
2
270
Talking SQL to Strangers
kachayev
3
570
Counting HTTP: 0.9...3
kachayev
1
85
Managing Data Chaos in The World of Microservices
kachayev
3
660
Deep HTTP Dive Through Aleph & Netty
kachayev
6
3.8k
Keep Your Data Safe With Refined Types
kachayev
4
1.5k
Clojure at Attendify (2nd ed)
kachayev
5
1.6k
Clojure at Attendify
kachayev
4
350
Finagle & Clojure
kachayev
6
1.3k
Other Decks in Programming
See All in Programming
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
450
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
220
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
naofumi
4
3.3k
なぜGoのジェネリクスはこの形なのか? Featherweight Goが明かす設計の核心
ryotaros
7
1k
LLMとPlaywright/reg-suitを活用した jQueryリファクタリングの実際
kinocoboy2
4
660
実践AIチャットボットUI実装入門
syumai
7
2.4k
Pythonスレッドとは結局何なのか? CPython実装から見るNoGIL時代の変化
curekoshimizu
4
1.3k
CSC509 Lecture 03
javiergs
PRO
0
330
2025年版 サーバーレス Web アプリケーションの作り方
hayatow
23
25k
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
360
iOSアプリの信頼性を向上させる取り組み/ios-app-improve-reliability
shino8rayu9
0
140
どの様にAIエージェントと 協業すべきだったのか?
takefumiyoshii
2
590
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Git: the NoSQL Database
bkeepers
PRO
431
66k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Navigating Team Friction
lara
189
15k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Docker and Python
trallard
46
3.6k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Six Lessons from altMBA
skipperchong
28
4k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Code Review Best Practice
trishagee
72
19k
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