Slide 1

Slide 1 text

Project Lateralus A distributed relay system in JavaScript by Raul Pino JSConf Uruguay 2016 1

Slide 2

Slide 2 text

Who am I? • Born in Venezuela. • Universidad Centroccidental Lisandro Alvarado (UCLA) • Living in Chile. • Axiom Zen • ZenHub • Groupon Latam. 2

Slide 3

Slide 3 text

Agenda Project Lateralus * Motivation * Problem * Solution Deatour into distributed systems Lateral ß * Architecture * Implementation * Demo 3

Slide 4

Slide 4 text

Lateralus: Motivation • Interested in the topic (Cloud Computing (Coursera)). • Situation in Venezuela. • Political, economical, and social unstability, ... • Situation in Chile. • Earthquakes, volcanos, wildfires, tsunamis, ... 4

Slide 5

Slide 5 text

Lateralus: Problem • No internet connection. • Voice calls service 1:1. • SMS by itself is 1:1 too. 5

Slide 6

Slide 6 text

Lateralus: Solution • Login once in a website with your Twitter account. • Send SMS to certified (local) phones. • Your message gets published. That's all. Twitter has that right? 6

Slide 7

Slide 7 text

Deatour into distributed systems Multicast Problem Failure Detection Problem 7

Slide 8

Slide 8 text

Multicast Problem Share information across the network 8

Slide 9

Slide 9 text

Multicast Problem Gossip protocol 9

Slide 10

Slide 10 text

Failure Detection Problem Keep track of available nodes 10

Slide 11

Slide 11 text

Failure Detection Problem Membership protocol 11

Slide 12

Slide 12 text

Failure Detection Problem Membership protocol: Centralized Heartbeating 12

Slide 13

Slide 13 text

Lateralus ß: Architecture 13

Slide 14

Slide 14 text

Lateralus ß: Architecture Gossip protocol variant 14

Slide 15

Slide 15 text

Lateralus ß: Architecture Membership protocol variant 15

Slide 16

Slide 16 text

Lateralus ß: Implementation Lets build the prototype! Lateral Server: * Node.js server (Express) * Twilio access (twilio package) * Twitter login (passport-twitter) * Phone number valdiation (google- libphonenumber) * * Database on MongoDB (listeners list). 16

Slide 17

Slide 17 text

Lateralus ß: Implementation Lateral App: * Ionic * Send/receive SMS (cordova-plugin- sms) * Listeners list on PouchDB (cordova adapter) * Bluetooth Low Energy (BLE) cordova- plugin-bluetoothle * 17

Slide 18

Slide 18 text

Lateralus ß: Demo 18

Slide 19

Slide 19 text

Roadmap • Release ß version! • GitHub org: project-lateralus • Bluetooth Low Energy • Paper draft about the protocol 19

Slide 20

Slide 20 text

Takeaways Universal JavaScript is here to stay and ready to support you! 20

Slide 21

Slide 21 text

Thanks! The only thing needed is your will, because you already have the power. Twitter: @p1nox GitHub: p1nox https://github.com/project-lateralus 21