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.6k
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
240
Talking SQL to Strangers
kachayev
3
530
Counting HTTP: 0.9...3
kachayev
1
65
Managing Data Chaos in The World of Microservices
kachayev
3
630
Deep HTTP Dive Through Aleph & Netty
kachayev
6
3.7k
Keep Your Data Safe With Refined Types
kachayev
4
1.4k
Clojure at Attendify (2nd ed)
kachayev
5
1.5k
Clojure at Attendify
kachayev
4
320
Finagle & Clojure
kachayev
6
1.3k
Other Decks in Programming
See All in Programming
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
890
Django NinjaによるAPI開発の効率化とリプレースの実践
kashewnuts
1
200
sappoRo.R #12 初心者セッション
kosugitti
0
270
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1.1k
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
190
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
170
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
1
210
Honoとフロントエンドの 型安全性について
yodaka
7
1.4k
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
240
ナレッジイネイブリングにAIを活用してみる ゆるSRE勉強会 #9
nealle
0
120
ARA Ansible for the teams
kksat
0
170
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.5k
Featured
See All Featured
Done Done
chrislema
182
16k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Designing for humans not robots
tammielis
250
25k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
A designer walks into a library…
pauljervisheath
205
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Speed Design
sergeychernyshev
27
800
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
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