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