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
320
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
720
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
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
190
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.9k
the container ship “Apple Silicon”@WWDC26 Recap -Japan-\(region).swift
shingangan
0
120
5分で問診!Composer セキュリティ健康診断
codmoninc
0
1k
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
110
AIを紡ぐPMのお話
swdtkuy
0
100
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
4.4k
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
490
メールのエイリアス機能を履き違えない
isshinfunada
0
240
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
3
1.1k
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
240
Android CLI
fornewid
0
220
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Test your architecture with Archunit
thirion
1
2.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Agile that works and the tools we love
rasmusluckow
331
22k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
460
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Unsuck your backbone
ammeep
672
58k
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