programming a zombie

24
rogramming a zombi @darkofabijan semaphoreapp.com renderedtext.com

Upload: darkofabijan

Post on 29-Jun-2015

114 views

Category:

Technology


0 download

DESCRIPTION

Introduction to distributed programming with Elixir and nice zombie examples

TRANSCRIPT

Page 1: Programming a zombie

Programming a zombie

@darkofabijansemaphoreapp.comrenderedtext.com

Page 2: Programming a zombie

Semaphore

•hosted continuous integration and deployment

•distributed & semi-fault-tolerant

•runs on 20 dedicated servers

•it’s all Ruby

Page 3: Programming a zombie
Page 4: Programming a zombie
Page 5: Programming a zombie
Page 6: Programming a zombie

Isolation

Page 7: Programming a zombie

1

Body part isolation

Page 8: Programming a zombie

2

Body isolation

Page 9: Programming a zombie

2

Body isolation

Page 10: Programming a zombie

Zombie world

Computer World

Page 11: Programming a zombie
Page 12: Programming a zombie
Page 13: Programming a zombie

Isolation

Message passing

Page 14: Programming a zombie

Elixir

BEAM

(EVM)Erlang

Page 15: Programming a zombie

streaming APIs

server side events

web sockets

multi-core

Page 16: Programming a zombie

Ruby / Ruby on Rails

great syntax

a lot of meta-programming

easy to create DSL

Page 17: Programming a zombie

BEAM

x few million

half mobile data traffic in the world

99.999+%

Page 18: Programming a zombie

def Math do

def sum do receive do {:sum, a, b} -> IO.puts(“Sum #{a + b}) sum() end

end

end

pid = spawn(fn -> Math.sum end)

pid <- {:sum, 2, 3}

=> Sum 5

Page 19: Programming a zombie

{:sum, 2, 3}Math.sum

Shell

Page 20: Programming a zombie

{:sum, 2, 3}Math.sum

Shell

Page 21: Programming a zombie

{:sum, 2, 3}Math.sum

Shell

Novi Sad

Tokyo

pid = spawn(tokyo, fn -> Math.sum end)

pid <- {:sum, 2, 3}

Page 22: Programming a zombie

OTP

Server

Event

FSM

Supervisor

Application

Leader

Page 23: Programming a zombie

Books

Page 24: Programming a zombie

Thank you!

Q&A