Slide 1

Slide 1 text

Scalable Event Driven Architectures with Twisted Friday, October 5, 2012

Slide 2

Slide 2 text

Praekelt Foundation builds open source, scalable mobile technologies and solutions to improve the health and wellbeing of people living in poverty. Friday, October 5, 2012

Slide 3

Slide 3 text

Majority World Friday, October 5, 2012

Slide 4

Slide 4 text

Africa: 1 billion people. 700 million phones. Friday, October 5, 2012

Slide 5

Slide 5 text

Most will never use a computer. Friday, October 5, 2012

Slide 6

Slide 6 text

Education Health Employment Agriculture Governance Friday, October 5, 2012

Slide 7

Slide 7 text

Image courtesy of Kiwanja.net There are some serious challenges. Friday, October 5, 2012

Slide 8

Slide 8 text

Nothing is reliable. Friday, October 5, 2012

Slide 9

Slide 9 text

Tight Coupling. Friday, October 5, 2012

Slide 10

Slide 10 text

Friday, October 5, 2012

Slide 11

Slide 11 text

Transports Applications Decoupled & Asynchronous Decoupled & Asynchronous Standardized Message Format Standardized Message Format Reusable Reusable Friday, October 5, 2012

Slide 12

Slide 12 text

Twisted Networking Application RabbitMQ AMQP Message bus Redis Key / Value store Persistence Riak NoSQL database Friday, October 5, 2012

Slide 13

Slide 13 text

Python Twisted Javascript Node.js Ruby EventMachine Friday, October 5, 2012

Slide 14

Slide 14 text

Event Driven Programming Programs consist of callbacks that are called by the framework. Friday, October 5, 2012

Slide 15

Slide 15 text

Friday, October 5, 2012

Slide 16

Slide 16 text

Friday, October 5, 2012

Slide 17

Slide 17 text

Friday, October 5, 2012

Slide 18

Slide 18 text

Friday, October 5, 2012

Slide 19

Slide 19 text

Friday, October 5, 2012

Slide 20

Slide 20 text

Friday, October 5, 2012

Slide 21

Slide 21 text

Deferred() Future Promise Friday, October 5, 2012

Slide 22

Slide 22 text

Friday, October 5, 2012

Slide 23

Slide 23 text

Friday, October 5, 2012

Slide 24

Slide 24 text

Friday, October 5, 2012

Slide 25

Slide 25 text

OS Event OS Event OS Event Deferreds F R R W W W W W W W W W W Reactor Event Loop Friday, October 5, 2012

Slide 26

Slide 26 text

T A Coupled Friday, October 5, 2012

Slide 27

Slide 27 text

T A Decoupled Friday, October 5, 2012

Slide 28

Slide 28 text

Concurrent TT A Friday, October 5, 2012

Slide 29

Slide 29 text

A T T T A A RabbitMQ Appointment Reminders ... USSD SMS ... Verify medicine Distributed Friday, October 5, 2012

Slide 30

Slide 30 text

You can wait Friday, October 5, 2012

Slide 31

Slide 31 text

T Synchronous 3rd party API A Inbound Vumi Message Outbound Vumi Message Friday, October 5, 2012

Slide 32

Slide 32 text

Deferreds can be difficult to wrap your head around. Friday, October 5, 2012

Slide 33

Slide 33 text

@inlineCallbacks great to get started, can cause subtle problems. Friday, October 5, 2012

Slide 34

Slide 34 text

Incredible stable stack Friday, October 5, 2012

Slide 35

Slide 35 text

trial Friday, October 5, 2012

Slide 36

Slide 36 text

WIKI VUMI Friday, October 5, 2012

Slide 37

Slide 37 text

Friday, October 5, 2012

Slide 38

Slide 38 text

Dial *120*8864#, or add [email protected] and [email protected] to your Google Talk contact list. Friday, October 5, 2012

Slide 39

Slide 39 text

github.com/praekelt/vumi/ Join! Build apps and infrastructure to impact Africa, at scale. Friday, October 5, 2012

Slide 40

Slide 40 text

*120*8864# Thank You. Friday, October 5, 2012