Robert Roskam
Engineer Manager at Pantheon
Organizer
@raiderrobert
twitter | github | medium
chart from dreamhost
chart from dreamhost
Classic HTTP request-response cycle:
- Request comes in
- Response goes out
WS, SSE, MQTT, GRPC, etc:
1) Negotiate a connection
2) Request comes in OR
3) Response goes out
4) Repeat (2) or (3) maybe
5) Close connection
async
user threads
coroutines
greenthreads
fibers
Scheduler in control.
Acts like modern OS threads/processes and will switch "contexts" per a strategy.
Task is in control.
Can potentially block and not "context" switch to another task.
Erlang/Elixir
Nodejs/JS
Python asyncio
PHP (swoole)
Ruby (nio4r)
Kotlin coroutines
Go
Haskell
Rust (Tokio)
My utterly imperfect but best attempt to classify
Ruby :(
By Robert Roskam