:gen_tcp.send(socket, "Hello world")
receive do
{:tcp, ^socket, response} ->
# ...
after
1000 -> :timeout
end
receive do
{:tcp, socket, data} ->
response = process_request(data)
:gen_tcp.send(socket, response)
end
Slide 34
Slide 34 text
GENSERVER.CALL/3
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
SERVERS
Slide 37
Slide 37 text
CLIENT
CLIENT
Slide 38
Slide 38 text
REACTIVE
Slide 39
Slide 39 text
No content
Slide 40
Slide 40 text
No content
Slide 41
Slide 41 text
SUPERVISORS
Slide 42
Slide 42 text
No content
Slide 43
Slide 43 text
No content
Slide 44
Slide 44 text
CLIENTS
Slide 45
Slide 45 text
GEN_STATEM
Slide 46
Slide 46 text
No content
Slide 47
Slide 47 text
IT'S ABOUT THE
GUARANTEES
Slide 48
Slide 48 text
RESTARTING A PROCESS IS ABOUT
BRINGING IT BACK TO A STABLE,
KNOWN STATE.
FROM THERE, THINGS CAN BE RETRIED.
WHEN THE INITIALIZATION ISN'T
STABLE, SUPERVISION IS WORTH VERY
LITTLE.
Slide 49
Slide 49 text
LET IT CRASHâ„¢?
...NO
Slide 50
Slide 50 text
PATTERN MATCHING
BINARIES
Slide 51
Slide 51 text
<> = dns_packet
Slide 52
Slide 52 text
WHY
IS THE BEAM
SUCH A GREAT
FIT?
Slide 53
Slide 53 text
No content
Slide 54
Slide 54 text
- ERLANG BLOG POST ABOUT MESSAGE PASSING
- MY BLOG POST ON TCP CONNECTIONS IN ELIXIR
- MY BLOG POST ON GEN_STATEM CONNECTIONS
- "IT'S ALL ABOUT THE GUARANTEES" BY FRED HEBERT
- THOUSAND ISLANDS ELIXIR LIBRARY
- END-TO-END ARGUMENTS IN SYSTEM DESIGN PAPER
- BINARY PATTERN MATCHING REFERENCE