Slide 1

Slide 1 text

Pling A flexible Notification Framework

Slide 2

Slide 2 text

Konstantin Tennhard Ruby Developer at flinc Hi, I‘m…

Slide 3

Slide 3 text

Konstantin Tennhard Ruby Developer at flinc Hi, I‘m… Ruby enthusiast Bartender Computer Science student Photographer Mountain bike addict Computer Linguist

Slide 4

Slide 4 text

The Problem... ... Notifications - all the way

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Something awesome happened

Slide 10

Slide 10 text

Something awesome happened

Slide 11

Slide 11 text

Binary via SSL HTTP POST SMTP HTTP GET

Slide 12

Slide 12 text

The Idea... ... or the three main components

Slide 13

Slide 13 text

Messages Gateways Devices deliver to

Slide 14

Slide 14 text

Messages •API: •#body •Build your own: •#to_pling_message ... are simply data containers Pling::Message.new :body => "Hello #rchh!" class MessageLikeThing # your implementation def to_pling_message ::Pling::Message.new(:body => "...") end end

Slide 15

Slide 15 text

Devices •Represent devices of any kind. •API: •#identifier •#type •Build your own: •#to_pling_device ... are simply data containers, too Pling::Device.new :identifier => "...", :type => :iphone class DeviceLikeThing # your implementation def to_pling_device ::Pling::Device.new( :identifier => "...", :type => :iphone ) end end

Slide 16

Slide 16 text

Gateways •Provider specific! •Support: • iPhone • Android • SMS • Email •Build your own: •#deliver!(message, device) ... do the heavy lifting message = Pling::Message.new(...) device = Pling::Device.new(...) gateway = Pling::Gateway.discover(device) gateway.deliver(message, device)

Slide 17

Slide 17 text

Middleware... Keeps your delivery flexible!

Slide 18

Slide 18 text

... it's just like Rack I know that's bold!

Slide 19

Slide 19 text

Processing

Slide 20

Slide 20 text

Processing ✔ Synchronous yep! ✖ Resque soon ✖ Delayed_Job soon

Slide 21

Slide 21 text

github.com/flinc/pling Try me, watch me, fork me!

Slide 22

Slide 22 text

Questions?

Slide 23

Slide 23 text

Thanks! W e‘re hiring! @t6d github.com/t6d [email protected]