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
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
310
Talking SQL to Strangers
kachayev
3
640
Counting HTTP: 0.9...3
kachayev
1
140
Managing Data Chaos in The World of Microservices
kachayev
3
700
Deep HTTP Dive Through Aleph & Netty
kachayev
6
4.1k
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
400
Finagle & Clojure
kachayev
6
1.4k
Other Decks in Programming
See All in Programming
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
310
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
810
Oxlintのカスタムルールの現況
syumai
6
1.2k
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
790
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.4k
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
15
7.3k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
dRuby over BLE
makicamel
2
390
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
180
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
240
Creating Composable Callables in Contemporary C++
rollbear
0
170
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
250
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Context Engineering - Making Every Token Count
addyosmani
9
990
Art, The Web, and Tiny UX
lynnandtonic
304
22k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
210
RailsConf 2023
tenderlove
30
1.5k
Paper Plane (Part 1)
katiecoart
PRO
0
9.3k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Six Lessons from altMBA
skipperchong
29
4.3k
30 Presentation Tips
portentint
PRO
1
330
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
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