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
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
130
Managing Data Chaos in The World of Microservices
kachayev
3
700
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
390
Finagle & Clojure
kachayev
6
1.4k
Other Decks in Programming
See All in Programming
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
770
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
500
Making the RBS Parser Faster
soutaro
0
680
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
570
JCON - Create Agentic AI Apps, The Easy Way!
kdubois
1
100
リセットCSSを1行消したらアクセシビリティが向上した話
pvcresin
4
500
Back to the roots of date
jinroq
0
780
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
480
HTML-Aware ERB: The Path to Reactive Rendering @ RubyKaigi 2026, Hakodate, Japan
marcoroth
0
670
サプライチェーン攻撃対策「層を重ねて落ちない壁」を10日間で組み上げた話 #TechLeadConf2026
kashewnuts
1
240
My daily life on Ruby
a_matsuda
3
200
tRPCの概要と少しだけパフォーマンス
misoton665
2
270
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Automating Front-end Workflow
addyosmani
1370
200k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
Into the Great Unknown - MozCon
thekraken
41
2.5k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Site-Speed That Sticks
csswizardry
13
1.2k
Ethics towards AI in product and experience design
skipperchong
2
270
Designing for Timeless Needs
cassininazir
0
220
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
210
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
120
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