SlideShare a Scribd company logo
Meetups Realtime multi-agent monitoring
Overview
• Meetup

• Feature list

• Architecture

• Heartbeats

• Pointers / Key Challenges

• Work Distribution
2
Meetup
What
Live Android App
Realtime multi-agent
monitoring
Why
Help people ‘Meetup’
And get around safely
3
Feature List
• Notifications
• Pair-up / Pooling Suggestions
• Automatic Activation / Deactivationprivacy
• Automatic Contact Syncing
• Modern UI Design
• Navigate to past locations of other users
• Low Bandwidth Usagepayloads
4
Backend Architecture

https://github.com/ca9/meetup-backend
• Google Cloud Endpoints
(Backend)

• Free. Easy deployment.
Documented. Google
Support.

• Logs, Traces, Version
Management.

• Python API Server

• Stateless BaaS

• NDB Datastore
5
Backend Pointers
• Security
• OAuth2 Authentication (took 2 months to get right), 

Google library changes. Google API token management.
• POST encapsulation, SHA1 identification
• Documented Client library generation, with code completion
• UTC timezones
• Checking for duplication. Object deletion.
• Stateless (No GCM dependency). No ‘session’.
6
Backend Architecture Snaps
7
Frontend Architecture

https://github.com/vedantswain/Meetup-Android
• Integration
• Interaction with backend server via client libraries
• Simplified development of client side and maintained consistency in
responses and requests
• Security
• Credentials create user and data api instances for (secure) communication
with the server
• One-time-login: Saved state of authenticated state on client’s
SharedPreferences
8
Frontend Contd.
• Time
• Default timezones on Mobile Devices

• DateTime object sent to server as

epoch (independent of timezone)

• Server stores time in UTC

• Ensures consistency between the clients
(irrespective of timezone) and with the server

• Exclusive Functions for Meetup Owner
• Certain functions (activate, deactivate) can
only be executed by the owner of the
metope

• Prevents anarchic behaviour
9
Frontend Structure
Frontend Contd.
• Single Service

• Optimisation: Single background service that
sends periodic heartbeats for a given user to all
the meetups
• Local Database
• Locations of users for different meetups at
different times are stored in the a local db

• Avoids fetching bulk data from server; simply
handles light weight latest locations

• Visualisation
• Plots path of every user on the map

• Heartbeat locations are nodes

• Colour coordinated paths to ease interpretation
10
public static abstract class LocationEntry implements BaseColumns {
public static final String TABLE_NAME = "Location";
public static final String TIME = "Time";
public static final String LATITUDE = "Latitude";
public static final String LONGITUDE="Longitude";
public static final String USERNAME="User_Name";
public static final String MEETUPNAME="Meetup_Name";
public static final String SQL_CREATE_ENTRIES =
"CREATE TABLE " + LocationEntry.TABLE_NAME + " (" +
LocationEntry._ID + " INTEGER PRIMARY KEY," +
LocationEntry.TIME + REAL_TYPE + COMMA_SEP +
LocationEntry.LATITUDE + REAL_TYPE +
COMMA_SEP +
LocationEntry.LONGITUDE + REAL_TYPE +
COMMA_SEP +
LocationEntry.USERNAME + TEXT_TYPE +
COMMA_SEP +
LocationEntry.MEETUPNAME +TEXT_TYPE +
" )";
public static final String SQL_DELETE_ENTRIES =
"DROP TABLE IF EXISTS " + LocationEntry.TABLE_NAME;
}
SQLite Local DB
Heartbeats
• Lightweight, high frequency messages
• Can be dropped / Can fail
• Trigger all important app functionality
• Status Responses
• Gotta give to get some love.
• Life: Update last location and timestamp of user under
meetup. Check for proximity to destination, other users. Auto
deactivate meetups, return other’s latest heartbeats.
11
Work Distribution
• Backend - https://github.com/ca9/meetup-backend
• Frontend - https://github.com/vedantswain/Meetup-Android
12

More Related Content

What's hot

An Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspectiveAn Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspective
BizTalk360
 
Pull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 TalkPull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 Talk
Julian Dunn
 
Kubernetes go paddle meetup
Kubernetes go paddle meetupKubernetes go paddle meetup
Kubernetes go paddle meetup
Sujai Prakasam
 
Icinga Camp Amsterdam - Icinga Director
Icinga Camp Amsterdam - Icinga DirectorIcinga Camp Amsterdam - Icinga Director
Icinga Camp Amsterdam - Icinga Director
Icinga
 
Diagnosing Problems in Production: Cassandra Summit 2014
Diagnosing Problems in Production: Cassandra Summit 2014Diagnosing Problems in Production: Cassandra Summit 2014
Diagnosing Problems in Production: Cassandra Summit 2014
Jon Haddad
 
The Rise of Streaming SQL
The Rise of Streaming SQLThe Rise of Streaming SQL
The Rise of Streaming SQL
Sriskandarajah Suhothayan
 
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
HostedbyConfluent
 
Kubernetes intro
Kubernetes introKubernetes intro
Kubernetes intro
Pravin Magdum
 
CQRS and Event Sourcing for IoT applications
CQRS and Event Sourcing for IoT applicationsCQRS and Event Sourcing for IoT applications
CQRS and Event Sourcing for IoT applications
Michael Blackstock
 
Openstack India May Meetup
Openstack India May MeetupOpenstack India May Meetup
Openstack India May Meetup
Deepak Garg
 
Kubernetes and elixir
Kubernetes and elixirKubernetes and elixir
Kubernetes and elixir
Jeffrey Chan
 
1Spatial: Cardiff FME World Tour: A database for every occasion
1Spatial: Cardiff FME World Tour: A database for every occasion1Spatial: Cardiff FME World Tour: A database for every occasion
1Spatial: Cardiff FME World Tour: A database for every occasion
1Spatial
 
Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
confluent
 
Order from chaos: automating monitoring configuration
Order from chaos: automating monitoring configurationOrder from chaos: automating monitoring configuration
Order from chaos: automating monitoring configuration
Sensu Inc.
 
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker, Inc.
 
Mobile Offline First
Mobile Offline FirstMobile Offline First
Mobile Offline First
Julio Castro
 
Event-Driven Microservices With NATS Streaming
Event-Driven Microservices With NATS StreamingEvent-Driven Microservices With NATS Streaming
Event-Driven Microservices With NATS Streaming
Shiju Varghese
 
Searchlight + Horizon - Mitaka march 2016
Searchlight  + Horizon - Mitaka march 2016Searchlight  + Horizon - Mitaka march 2016
Searchlight + Horizon - Mitaka march 2016
Travis Tripp
 
Cloud Orchestration using CoreStack
Cloud Orchestration using CoreStackCloud Orchestration using CoreStack
Cloud Orchestration using CoreStack
Krishnakumar Narayanan
 
Cloud Native Patterns Using AWS
Cloud Native Patterns Using AWSCloud Native Patterns Using AWS
Cloud Native Patterns Using AWS
Anderson Carvalho
 

What's hot (20)

An Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspectiveAn Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspective
 
Pull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 TalkPull, Don't Push! Sensu Summit 2018 Talk
Pull, Don't Push! Sensu Summit 2018 Talk
 
Kubernetes go paddle meetup
Kubernetes go paddle meetupKubernetes go paddle meetup
Kubernetes go paddle meetup
 
Icinga Camp Amsterdam - Icinga Director
Icinga Camp Amsterdam - Icinga DirectorIcinga Camp Amsterdam - Icinga Director
Icinga Camp Amsterdam - Icinga Director
 
Diagnosing Problems in Production: Cassandra Summit 2014
Diagnosing Problems in Production: Cassandra Summit 2014Diagnosing Problems in Production: Cassandra Summit 2014
Diagnosing Problems in Production: Cassandra Summit 2014
 
The Rise of Streaming SQL
The Rise of Streaming SQLThe Rise of Streaming SQL
The Rise of Streaming SQL
 
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
Moving 150 TB of data resiliently on Kafka With Quorum Controller on Kubernet...
 
Kubernetes intro
Kubernetes introKubernetes intro
Kubernetes intro
 
CQRS and Event Sourcing for IoT applications
CQRS and Event Sourcing for IoT applicationsCQRS and Event Sourcing for IoT applications
CQRS and Event Sourcing for IoT applications
 
Openstack India May Meetup
Openstack India May MeetupOpenstack India May Meetup
Openstack India May Meetup
 
Kubernetes and elixir
Kubernetes and elixirKubernetes and elixir
Kubernetes and elixir
 
1Spatial: Cardiff FME World Tour: A database for every occasion
1Spatial: Cardiff FME World Tour: A database for every occasion1Spatial: Cardiff FME World Tour: A database for every occasion
1Spatial: Cardiff FME World Tour: A database for every occasion
 
Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
Kafka Summit SF 2017 - Providing Reliability Guarantees in Kafka at One Trill...
 
Order from chaos: automating monitoring configuration
Order from chaos: automating monitoring configurationOrder from chaos: automating monitoring configuration
Order from chaos: automating monitoring configuration
 
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
 
Mobile Offline First
Mobile Offline FirstMobile Offline First
Mobile Offline First
 
Event-Driven Microservices With NATS Streaming
Event-Driven Microservices With NATS StreamingEvent-Driven Microservices With NATS Streaming
Event-Driven Microservices With NATS Streaming
 
Searchlight + Horizon - Mitaka march 2016
Searchlight  + Horizon - Mitaka march 2016Searchlight  + Horizon - Mitaka march 2016
Searchlight + Horizon - Mitaka march 2016
 
Cloud Orchestration using CoreStack
Cloud Orchestration using CoreStackCloud Orchestration using CoreStack
Cloud Orchestration using CoreStack
 
Cloud Native Patterns Using AWS
Cloud Native Patterns Using AWSCloud Native Patterns Using AWS
Cloud Native Patterns Using AWS
 

Viewers also liked

Career Advice for Engineering Students in India
Career Advice for Engineering Students in IndiaCareer Advice for Engineering Students in India
Career Advice for Engineering Students in India
Aditya Gupta
 
Lou lou moose
Lou lou mooseLou lou moose
Lou lou moose
kinderstars
 
Team building
Team buildingTeam building
Team building
saiagarwal
 
Farley fox
Farley foxFarley fox
Farley fox
kinderstars
 
Cognitive dissonance is a Good thing
Cognitive dissonance is a Good thingCognitive dissonance is a Good thing
Cognitive dissonance is a Good thing
Aditya Gupta
 
Infographie passage au cloud
Infographie passage au cloudInfographie passage au cloud
Infographie passage au cloud
AtoutDSI
 
Jenny jaguar
Jenny  jaguarJenny  jaguar
Jenny jaguar
kinderstars
 
Arnie aardvark
Arnie  aardvarkArnie  aardvark
Arnie aardvark
kinderstars
 
Old joe crow
Old joe crowOld joe crow
Old joe crow
kinderstars
 
CannLabs presentation from WeedStock Investor Conference 2014
CannLabs presentation from WeedStock Investor Conference 2014CannLabs presentation from WeedStock Investor Conference 2014
CannLabs presentation from WeedStock Investor Conference 2014
CannLabs
 
法雅客攝影馬拉松記錄
法雅客攝影馬拉松記錄法雅客攝影馬拉松記錄
法雅客攝影馬拉松記錄
Po-ru Lee
 
Making susanne
Making susanneMaking susanne
Making susanne
Aditya Gupta
 
IE Admission Essay Question- A (UN Secretary)
IE Admission Essay  Question- A (UN Secretary) IE Admission Essay  Question- A (UN Secretary)
IE Admission Essay Question- A (UN Secretary)
Aman Tripathi
 
Victor vampire
Victor vampireVictor vampire
Victor vampire
kinderstars
 
Responses
ResponsesResponses
Responses
Aditya Gupta
 
Shapes shapes-everywhere
Shapes shapes-everywhereShapes shapes-everywhere
Shapes shapes-everywhere
kinderstars
 
Special senses
Special  sensesSpecial  senses
Special senses
stanralph
 
Crazy camel
Crazy camelCrazy camel
Crazy camel
kinderstars
 
China air pollution season kicks off with a cough and a wheeze as coal plants...
China air pollution season kicks off with a cough and a wheeze as coal plants...China air pollution season kicks off with a cough and a wheeze as coal plants...
China air pollution season kicks off with a cough and a wheeze as coal plants...
oddjoker3810
 
Endocrine system 1
Endocrine system 1Endocrine system 1
Endocrine system 1
stanralph
 

Viewers also liked (20)

Career Advice for Engineering Students in India
Career Advice for Engineering Students in IndiaCareer Advice for Engineering Students in India
Career Advice for Engineering Students in India
 
Lou lou moose
Lou lou mooseLou lou moose
Lou lou moose
 
Team building
Team buildingTeam building
Team building
 
Farley fox
Farley foxFarley fox
Farley fox
 
Cognitive dissonance is a Good thing
Cognitive dissonance is a Good thingCognitive dissonance is a Good thing
Cognitive dissonance is a Good thing
 
Infographie passage au cloud
Infographie passage au cloudInfographie passage au cloud
Infographie passage au cloud
 
Jenny jaguar
Jenny  jaguarJenny  jaguar
Jenny jaguar
 
Arnie aardvark
Arnie  aardvarkArnie  aardvark
Arnie aardvark
 
Old joe crow
Old joe crowOld joe crow
Old joe crow
 
CannLabs presentation from WeedStock Investor Conference 2014
CannLabs presentation from WeedStock Investor Conference 2014CannLabs presentation from WeedStock Investor Conference 2014
CannLabs presentation from WeedStock Investor Conference 2014
 
法雅客攝影馬拉松記錄
法雅客攝影馬拉松記錄法雅客攝影馬拉松記錄
法雅客攝影馬拉松記錄
 
Making susanne
Making susanneMaking susanne
Making susanne
 
IE Admission Essay Question- A (UN Secretary)
IE Admission Essay  Question- A (UN Secretary) IE Admission Essay  Question- A (UN Secretary)
IE Admission Essay Question- A (UN Secretary)
 
Victor vampire
Victor vampireVictor vampire
Victor vampire
 
Responses
ResponsesResponses
Responses
 
Shapes shapes-everywhere
Shapes shapes-everywhereShapes shapes-everywhere
Shapes shapes-everywhere
 
Special senses
Special  sensesSpecial  senses
Special senses
 
Crazy camel
Crazy camelCrazy camel
Crazy camel
 
China air pollution season kicks off with a cough and a wheeze as coal plants...
China air pollution season kicks off with a cough and a wheeze as coal plants...China air pollution season kicks off with a cough and a wheeze as coal plants...
China air pollution season kicks off with a cough and a wheeze as coal plants...
 
Endocrine system 1
Endocrine system 1Endocrine system 1
Endocrine system 1
 

Similar to Meetups - A realtime distributed monitoring application (Android)

F8 tech talk_pinterest_v4
F8 tech talk_pinterest_v4F8 tech talk_pinterest_v4
F8 tech talk_pinterest_v4
malorie_pinterest
 
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Stephen Gordon
 
Webinar 2017. Supercharge your analytics with ClickHouse. Alexander Zaitsev
Webinar 2017. Supercharge your analytics with ClickHouse. Alexander ZaitsevWebinar 2017. Supercharge your analytics with ClickHouse. Alexander Zaitsev
Webinar 2017. Supercharge your analytics with ClickHouse. Alexander Zaitsev
Altinity Ltd
 
Utilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino API
Oliver Busse
 
Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Monitoring, the Prometheus Way - Julius Voltz, Prometheus Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Docker, Inc.
 
Node.js
Node.jsNode.js
Node.js
Matt Simonis
 
Utilizing the open ntf domino api
Utilizing the open ntf domino apiUtilizing the open ntf domino api
Utilizing the open ntf domino api
Oliver Busse
 
Windows 8 Apps and the Outside World
Windows 8 Apps and the Outside WorldWindows 8 Apps and the Outside World
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!
David Hoerster
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileIVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Amazon Web Services Japan
 
.NET7.pptx
.NET7.pptx.NET7.pptx
XMPP/Jingle(VoIP)/Perl Ocean 2012/03
XMPP/Jingle(VoIP)/Perl Ocean 2012/03XMPP/Jingle(VoIP)/Perl Ocean 2012/03
XMPP/Jingle(VoIP)/Perl Ocean 2012/03
Lyo Kato
 
JavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EEJavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EE
Rodrigo Cândido da Silva
 
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
iguazio
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Docker, Inc.
 
Big Data and NoSQL for Database and BI Pros
Big Data and NoSQL for Database and BI ProsBig Data and NoSQL for Database and BI Pros
Big Data and NoSQL for Database and BI Pros
Andrew Brust
 
Exploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservicesExploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservices
💡 Tomasz Kogut
 
Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?
Cask Data
 
Fusion on Kubernetes - Alan Eugenio & Joe Streeky, Lucidworks
Fusion on Kubernetes - Alan Eugenio & Joe Streeky, LucidworksFusion on Kubernetes - Alan Eugenio & Joe Streeky, Lucidworks
Fusion on Kubernetes - Alan Eugenio & Joe Streeky, Lucidworks
Lucidworks
 
Druid at naver.com - part 1
Druid at naver.com - part 1Druid at naver.com - part 1
Druid at naver.com - part 1
Jungsu Heo
 

Similar to Meetups - A realtime distributed monitoring application (Android) (20)

F8 tech talk_pinterest_v4
F8 tech talk_pinterest_v4F8 tech talk_pinterest_v4
F8 tech talk_pinterest_v4
 
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
 
Webinar 2017. Supercharge your analytics with ClickHouse. Alexander Zaitsev
Webinar 2017. Supercharge your analytics with ClickHouse. Alexander ZaitsevWebinar 2017. Supercharge your analytics with ClickHouse. Alexander Zaitsev
Webinar 2017. Supercharge your analytics with ClickHouse. Alexander Zaitsev
 
Utilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino API
 
Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Monitoring, the Prometheus Way - Julius Voltz, Prometheus Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Monitoring, the Prometheus Way - Julius Voltz, Prometheus
 
Node.js
Node.jsNode.js
Node.js
 
Utilizing the open ntf domino api
Utilizing the open ntf domino apiUtilizing the open ntf domino api
Utilizing the open ntf domino api
 
Windows 8 Apps and the Outside World
Windows 8 Apps and the Outside WorldWindows 8 Apps and the Outside World
Windows 8 Apps and the Outside World
 
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileIVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
 
.NET7.pptx
.NET7.pptx.NET7.pptx
.NET7.pptx
 
XMPP/Jingle(VoIP)/Perl Ocean 2012/03
XMPP/Jingle(VoIP)/Perl Ocean 2012/03XMPP/Jingle(VoIP)/Perl Ocean 2012/03
XMPP/Jingle(VoIP)/Perl Ocean 2012/03
 
JavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EEJavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EE
 
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
Serverless and AI: Orit Nissan-Messing, Iguazio, Serverless NYC 2018
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
 
Big Data and NoSQL for Database and BI Pros
Big Data and NoSQL for Database and BI ProsBig Data and NoSQL for Database and BI Pros
Big Data and NoSQL for Database and BI Pros
 
Exploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservicesExploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservices
 
Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?Webinar: What's new in CDAP 3.5?
Webinar: What's new in CDAP 3.5?
 
Fusion on Kubernetes - Alan Eugenio & Joe Streeky, Lucidworks
Fusion on Kubernetes - Alan Eugenio & Joe Streeky, LucidworksFusion on Kubernetes - Alan Eugenio & Joe Streeky, Lucidworks
Fusion on Kubernetes - Alan Eugenio & Joe Streeky, Lucidworks
 
Druid at naver.com - part 1
Druid at naver.com - part 1Druid at naver.com - part 1
Druid at naver.com - part 1
 

Recently uploaded

E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 

Recently uploaded (20)

E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 

Meetups - A realtime distributed monitoring application (Android)

  • 2. Overview • Meetup • Feature list • Architecture • Heartbeats • Pointers / Key Challenges • Work Distribution 2
  • 3. Meetup What Live Android App Realtime multi-agent monitoring Why Help people ‘Meetup’ And get around safely 3
  • 4. Feature List • Notifications • Pair-up / Pooling Suggestions • Automatic Activation / Deactivationprivacy • Automatic Contact Syncing • Modern UI Design • Navigate to past locations of other users • Low Bandwidth Usagepayloads 4
  • 5. Backend Architecture
 https://github.com/ca9/meetup-backend • Google Cloud Endpoints (Backend) • Free. Easy deployment. Documented. Google Support. • Logs, Traces, Version Management. • Python API Server • Stateless BaaS • NDB Datastore 5
  • 6. Backend Pointers • Security • OAuth2 Authentication (took 2 months to get right), 
 Google library changes. Google API token management. • POST encapsulation, SHA1 identification • Documented Client library generation, with code completion • UTC timezones • Checking for duplication. Object deletion. • Stateless (No GCM dependency). No ‘session’. 6
  • 8. Frontend Architecture
 https://github.com/vedantswain/Meetup-Android • Integration • Interaction with backend server via client libraries • Simplified development of client side and maintained consistency in responses and requests • Security • Credentials create user and data api instances for (secure) communication with the server • One-time-login: Saved state of authenticated state on client’s SharedPreferences 8
  • 9. Frontend Contd. • Time • Default timezones on Mobile Devices • DateTime object sent to server as
 epoch (independent of timezone) • Server stores time in UTC • Ensures consistency between the clients (irrespective of timezone) and with the server • Exclusive Functions for Meetup Owner • Certain functions (activate, deactivate) can only be executed by the owner of the metope • Prevents anarchic behaviour 9 Frontend Structure
  • 10. Frontend Contd. • Single Service • Optimisation: Single background service that sends periodic heartbeats for a given user to all the meetups • Local Database • Locations of users for different meetups at different times are stored in the a local db • Avoids fetching bulk data from server; simply handles light weight latest locations • Visualisation • Plots path of every user on the map • Heartbeat locations are nodes • Colour coordinated paths to ease interpretation 10 public static abstract class LocationEntry implements BaseColumns { public static final String TABLE_NAME = "Location"; public static final String TIME = "Time"; public static final String LATITUDE = "Latitude"; public static final String LONGITUDE="Longitude"; public static final String USERNAME="User_Name"; public static final String MEETUPNAME="Meetup_Name"; public static final String SQL_CREATE_ENTRIES = "CREATE TABLE " + LocationEntry.TABLE_NAME + " (" + LocationEntry._ID + " INTEGER PRIMARY KEY," + LocationEntry.TIME + REAL_TYPE + COMMA_SEP + LocationEntry.LATITUDE + REAL_TYPE + COMMA_SEP + LocationEntry.LONGITUDE + REAL_TYPE + COMMA_SEP + LocationEntry.USERNAME + TEXT_TYPE + COMMA_SEP + LocationEntry.MEETUPNAME +TEXT_TYPE + " )"; public static final String SQL_DELETE_ENTRIES = "DROP TABLE IF EXISTS " + LocationEntry.TABLE_NAME; } SQLite Local DB
  • 11. Heartbeats • Lightweight, high frequency messages • Can be dropped / Can fail • Trigger all important app functionality • Status Responses • Gotta give to get some love. • Life: Update last location and timestamp of user under meetup. Check for proximity to destination, other users. Auto deactivate meetups, return other’s latest heartbeats. 11
  • 12. Work Distribution • Backend - https://github.com/ca9/meetup-backend • Frontend - https://github.com/vedantswain/Meetup-Android 12