SlideShare une entreprise Scribd logo
1  sur  19
Presented by Michael Smyers
Co-founder and SVP of Architecture
Apache Cassandra at
Zipwhip: Messaging with
Multi Datacenter and
Carrier-Grade Uptime
Cool stuff we use
Cassandra on
WHO IS ZIPWHIP?
©2013 Zipwhip
Zipwhip has moved text
messaging to the cloud.
Text messaging is no longer just for mobile
phones. You can now send and receive text
messages on your existing landline or toll
free number using Zipwhip.
On April 10th, 2013, Zipwhip officially became
the world’s first text carrier by adding a second
carrier, a text carrier, to a business’s existing
landline or toll free number.
©2013 Zipwhip 02
CURRENT CARRIER CUSTOMERS
CARRIER-GRADE CLOUD TEXTING
Zipwhip peers with the wireless carrier
ecosystem passing traffic freely
between carrier networks and your
business landline or toll free numbers.
We are servicing nearly 20 million users
and Zipwhip handles nearly 1 billion
texts per month.
©2013 Zipwhip
Zipwhip is a carrier-grade cloud
texting platform.
Wireless
Operator
Inter-Carrier Ecosystem Zipwhip Cloud Texting
Inter-Carrier
Texting
Ecosystem
AT&T
Sprint
T-Mobile
C Spire
Tracfone
U.S. Cellular
Verizon
Zipwhip Platform
The landline or toll free phone
numbers are placed into the
core routing tables for text
messaging.
The text messages
flow in and out of
Zipwhip’s platform.
APPS FOR ANY DEVICE AND OPERATING SYSTEM
©2013 Zipwhip
TWO-WAY CONVERSATION TEXTING APPLICATION
©2013 Zipwhip
Zipwhips extensive
cloud platform includes:
 Unlimited texting
 Unlimited storage
 SMS cloud sync
 Full suite of apps
 Delivery receipt
 Multiple user log in
Coming Soon:
MMS & Caller ID HTML
WHAT ARE THE USE-CASES FOR CASSANDRA?
Signal delivery to all connected devices
- Event Sync: When you delete a message, the change cascades to all devices
- Privacy: Who is getting a copy of my texts?
Message (sms) storage (coming soon)
©2013 Zipwhip
THE SIGNAL SERVER
Always-on connection to many devices
Devices maintain “presence”
Active-active datacenter
Scale horizontally
Nameless nodes
Zero configuration
©2013 Zipwhip
HOW DO YOU SCALE THE SYSTEM?
Add another Cassandra node (self discovery)
Add another Signal Server node (self discovery)
Binds into central ActiveMQ (JMS)
Binds into central Zookeeper
Binds into central Cassandra
©2013 Zipwhip
SPECIFIC CASSANDRA USE-CASES
©2013 Zipwhip
 Topology: Who cares about what?
 Timeline: Ordered events that are to be delivered
SUBSCRIPTION TOPOLOGY – WHO CARES ABOUT WHAT?
©2013 Zipwhip
This stuff is only written when they first connect
SUBSCRIPTION TOPOLOGY
©2013 Zipwhip 11
ChannelAddressChannelAddressChannelAddress
ClientAddress
ChannelAddressChannelAddressClientAddress
ChannelAddress
ColumnFamily: (Dormant+Active)SubscriptionTopology(Normal+Index)
RowKey: addressString1 (channel or client addresses)
ColumnName: subscriptionId_addressString2 (the opposite of above)
ColumnValue: subscriptionId
SUBSCRIPTION TOPOLOGY
©2013 Zipwhip 12
TIMELINE – THE EVENTS TO DELIVER
©2013 Zipwhip
TIMELINE – THE EVENTS TO DELIVER
©2013 Zipwhip
Event<T> Event<T> Event<T> Event<T> Event<T> Event<T>
Head
Last Acknowledged
(for a given clientAddress)
Channel: /user/3223424
TIMELINE – HOW IT’S USED
©2013 Zipwhip 15
ColumnFamily: MessageTimeline
RowKey: address.toString()
ColumnName: timestamp
ColumnValue: JsonSerializer.serialize(message)
WHY CASSANDRA?
©2013 Zipwhip
High write performance by adding new nodes
Easy to scale – zero configuration
Immediately consistent within the same datacenter
Eventually consistent across all datacenters
Auto expiration of old signals/subscriptions via TTL
MILESTONES AND PRODUCT ROADMAP
We’re testing out Cassandra with Signal Server
Preparing to migrate all SMS inter-carrier traffic to
Cassandra (currently sharded/master/slave MySql)
©2013 Zipwhip
Contact Michael Smyers for more info at:
msmyers@zipwhip.com
Thank you!

Contenu connexe

Tendances

ARC330_How the BBC Built a Massive Media Pipeline Using Microservices
ARC330_How the BBC Built a Massive Media Pipeline Using MicroservicesARC330_How the BBC Built a Massive Media Pipeline Using Microservices
ARC330_How the BBC Built a Massive Media Pipeline Using MicroservicesAmazon Web Services
 
Extending Data Centers to the Cloud: Connectivity Options and Considerations ...
Extending Data Centers to the Cloud: Connectivity Options and Considerations ...Extending Data Centers to the Cloud: Connectivity Options and Considerations ...
Extending Data Centers to the Cloud: Connectivity Options and Considerations ...Amazon Web Services
 
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot Fleet
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot FleetCMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot Fleet
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot FleetAmazon Web Services
 
AWS SSA Webinar 11 - Getting started on AWS: Security
AWS SSA Webinar 11 - Getting started on AWS: SecurityAWS SSA Webinar 11 - Getting started on AWS: Security
AWS SSA Webinar 11 - Getting started on AWS: SecurityCobus Bernard
 
AWS EMEA Online Summit - Blending Spot and On-Demand instances to optimizing ...
AWS EMEA Online Summit - Blending Spot and On-Demand instances to optimizing ...AWS EMEA Online Summit - Blending Spot and On-Demand instances to optimizing ...
AWS EMEA Online Summit - Blending Spot and On-Demand instances to optimizing ...Cobus Bernard
 
How to run your startup on Amazon Web Services, by Alex Iskold
How to run your startup on Amazon Web Services, by Alex IskoldHow to run your startup on Amazon Web Services, by Alex Iskold
How to run your startup on Amazon Web Services, by Alex IskoldAlex Iskold
 
CMP304_Deep Dive Backing Up Amazon EC2 with Amazon EBS Snapshots
CMP304_Deep Dive Backing Up Amazon EC2 with Amazon EBS SnapshotsCMP304_Deep Dive Backing Up Amazon EC2 with Amazon EBS Snapshots
CMP304_Deep Dive Backing Up Amazon EC2 with Amazon EBS SnapshotsAmazon Web Services
 
AWS SSA Webinar 13 - Getting started on AWS with Containers: Amazon ECS
AWS SSA Webinar 13 - Getting started on AWS with Containers: Amazon ECSAWS SSA Webinar 13 - Getting started on AWS with Containers: Amazon ECS
AWS SSA Webinar 13 - Getting started on AWS with Containers: Amazon ECSCobus Bernard
 
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at Scale
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at ScaleDEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at Scale
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at ScaleAmazon Web Services
 
How to Handle PCI and HIPAA Compliance with Serverless Architecture( SRV214)
How to Handle PCI and HIPAA Compliance with Serverless Architecture( SRV214)How to Handle PCI and HIPAA Compliance with Serverless Architecture( SRV214)
How to Handle PCI and HIPAA Compliance with Serverless Architecture( SRV214)Amazon Web Services
 
AWS SSA Webinar 18 - Getting Started with Multi-Region Architecture: Data
AWS SSA Webinar 18 - Getting Started with Multi-Region Architecture: DataAWS SSA Webinar 18 - Getting Started with Multi-Region Architecture: Data
AWS SSA Webinar 18 - Getting Started with Multi-Region Architecture: DataCobus Bernard
 
Deep Dive: AWS Direct Connect and VPNs - NET403 - re:Invent 2017
Deep Dive: AWS Direct Connect and VPNs - NET403 - re:Invent 2017Deep Dive: AWS Direct Connect and VPNs - NET403 - re:Invent 2017
Deep Dive: AWS Direct Connect and VPNs - NET403 - re:Invent 2017Amazon Web Services
 
CON213_Hands-on Kubernetes on AWS
CON213_Hands-on Kubernetes on AWSCON213_Hands-on Kubernetes on AWS
CON213_Hands-on Kubernetes on AWSAmazon Web Services
 
DAT339_Replicate, Analyze, and Visualize Datasets Using AWS Database Migratio...
DAT339_Replicate, Analyze, and Visualize Datasets Using AWS Database Migratio...DAT339_Replicate, Analyze, and Visualize Datasets Using AWS Database Migratio...
DAT339_Replicate, Analyze, and Visualize Datasets Using AWS Database Migratio...Amazon Web Services
 
In Space, Everyone Can See NASA Stream (in 4K) - CTD208 - re:Invent 2017
In Space, Everyone Can See NASA Stream (in 4K) - CTD208 - re:Invent 2017In Space, Everyone Can See NASA Stream (in 4K) - CTD208 - re:Invent 2017
In Space, Everyone Can See NASA Stream (in 4K) - CTD208 - re:Invent 2017Amazon Web Services
 
NET201_Creating Your Virtual Data Center
NET201_Creating Your Virtual Data CenterNET201_Creating Your Virtual Data Center
NET201_Creating Your Virtual Data CenterAmazon Web Services
 
AWS SSA Webinar 16 - Getting Started on AWS with Amazon EC2
AWS SSA Webinar 16 - Getting Started on AWS with Amazon EC2AWS SSA Webinar 16 - Getting Started on AWS with Amazon EC2
AWS SSA Webinar 16 - Getting Started on AWS with Amazon EC2Cobus Bernard
 
AWS SSA Webinar 15 - Getting started on AWS with Containers: Amazon EKS
AWS SSA Webinar 15 - Getting started on AWS with Containers: Amazon EKSAWS SSA Webinar 15 - Getting started on AWS with Containers: Amazon EKS
AWS SSA Webinar 15 - Getting started on AWS with Containers: Amazon EKSCobus Bernard
 
CTD303_Korea’s Largest OTT provider
CTD303_Korea’s Largest OTT providerCTD303_Korea’s Largest OTT provider
CTD303_Korea’s Largest OTT providerAmazon Web Services
 

Tendances (20)

ARC330_How the BBC Built a Massive Media Pipeline Using Microservices
ARC330_How the BBC Built a Massive Media Pipeline Using MicroservicesARC330_How the BBC Built a Massive Media Pipeline Using Microservices
ARC330_How the BBC Built a Massive Media Pipeline Using Microservices
 
CMP310_Deep Dive on Amazon EBS
CMP310_Deep Dive on Amazon EBSCMP310_Deep Dive on Amazon EBS
CMP310_Deep Dive on Amazon EBS
 
Extending Data Centers to the Cloud: Connectivity Options and Considerations ...
Extending Data Centers to the Cloud: Connectivity Options and Considerations ...Extending Data Centers to the Cloud: Connectivity Options and Considerations ...
Extending Data Centers to the Cloud: Connectivity Options and Considerations ...
 
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot Fleet
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot FleetCMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot Fleet
CMP316_Hedge Your Own Funds Run Monte Carlo Simulations on EC2 Spot Fleet
 
AWS SSA Webinar 11 - Getting started on AWS: Security
AWS SSA Webinar 11 - Getting started on AWS: SecurityAWS SSA Webinar 11 - Getting started on AWS: Security
AWS SSA Webinar 11 - Getting started on AWS: Security
 
AWS EMEA Online Summit - Blending Spot and On-Demand instances to optimizing ...
AWS EMEA Online Summit - Blending Spot and On-Demand instances to optimizing ...AWS EMEA Online Summit - Blending Spot and On-Demand instances to optimizing ...
AWS EMEA Online Summit - Blending Spot and On-Demand instances to optimizing ...
 
How to run your startup on Amazon Web Services, by Alex Iskold
How to run your startup on Amazon Web Services, by Alex IskoldHow to run your startup on Amazon Web Services, by Alex Iskold
How to run your startup on Amazon Web Services, by Alex Iskold
 
CMP304_Deep Dive Backing Up Amazon EC2 with Amazon EBS Snapshots
CMP304_Deep Dive Backing Up Amazon EC2 with Amazon EBS SnapshotsCMP304_Deep Dive Backing Up Amazon EC2 with Amazon EBS Snapshots
CMP304_Deep Dive Backing Up Amazon EC2 with Amazon EBS Snapshots
 
AWS SSA Webinar 13 - Getting started on AWS with Containers: Amazon ECS
AWS SSA Webinar 13 - Getting started on AWS with Containers: Amazon ECSAWS SSA Webinar 13 - Getting started on AWS with Containers: Amazon ECS
AWS SSA Webinar 13 - Getting started on AWS with Containers: Amazon ECS
 
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at Scale
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at ScaleDEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at Scale
DEV333_Using Amazon CloudWatch for Amazon ECS Resource Monitoring at Scale
 
How to Handle PCI and HIPAA Compliance with Serverless Architecture( SRV214)
How to Handle PCI and HIPAA Compliance with Serverless Architecture( SRV214)How to Handle PCI and HIPAA Compliance with Serverless Architecture( SRV214)
How to Handle PCI and HIPAA Compliance with Serverless Architecture( SRV214)
 
AWS SSA Webinar 18 - Getting Started with Multi-Region Architecture: Data
AWS SSA Webinar 18 - Getting Started with Multi-Region Architecture: DataAWS SSA Webinar 18 - Getting Started with Multi-Region Architecture: Data
AWS SSA Webinar 18 - Getting Started with Multi-Region Architecture: Data
 
Deep Dive: AWS Direct Connect and VPNs - NET403 - re:Invent 2017
Deep Dive: AWS Direct Connect and VPNs - NET403 - re:Invent 2017Deep Dive: AWS Direct Connect and VPNs - NET403 - re:Invent 2017
Deep Dive: AWS Direct Connect and VPNs - NET403 - re:Invent 2017
 
CON213_Hands-on Kubernetes on AWS
CON213_Hands-on Kubernetes on AWSCON213_Hands-on Kubernetes on AWS
CON213_Hands-on Kubernetes on AWS
 
DAT339_Replicate, Analyze, and Visualize Datasets Using AWS Database Migratio...
DAT339_Replicate, Analyze, and Visualize Datasets Using AWS Database Migratio...DAT339_Replicate, Analyze, and Visualize Datasets Using AWS Database Migratio...
DAT339_Replicate, Analyze, and Visualize Datasets Using AWS Database Migratio...
 
In Space, Everyone Can See NASA Stream (in 4K) - CTD208 - re:Invent 2017
In Space, Everyone Can See NASA Stream (in 4K) - CTD208 - re:Invent 2017In Space, Everyone Can See NASA Stream (in 4K) - CTD208 - re:Invent 2017
In Space, Everyone Can See NASA Stream (in 4K) - CTD208 - re:Invent 2017
 
NET201_Creating Your Virtual Data Center
NET201_Creating Your Virtual Data CenterNET201_Creating Your Virtual Data Center
NET201_Creating Your Virtual Data Center
 
AWS SSA Webinar 16 - Getting Started on AWS with Amazon EC2
AWS SSA Webinar 16 - Getting Started on AWS with Amazon EC2AWS SSA Webinar 16 - Getting Started on AWS with Amazon EC2
AWS SSA Webinar 16 - Getting Started on AWS with Amazon EC2
 
AWS SSA Webinar 15 - Getting started on AWS with Containers: Amazon EKS
AWS SSA Webinar 15 - Getting started on AWS with Containers: Amazon EKSAWS SSA Webinar 15 - Getting started on AWS with Containers: Amazon EKS
AWS SSA Webinar 15 - Getting started on AWS with Containers: Amazon EKS
 
CTD303_Korea’s Largest OTT provider
CTD303_Korea’s Largest OTT providerCTD303_Korea’s Largest OTT provider
CTD303_Korea’s Largest OTT provider
 

Similaire à Cool stuff we use Cassandra on

CLOUD_COMPUTING_PRESENTATION.pptx
CLOUD_COMPUTING_PRESENTATION.pptxCLOUD_COMPUTING_PRESENTATION.pptx
CLOUD_COMPUTING_PRESENTATION.pptxKelvinDube4
 
Harnessing 2012 - Cloud presentation
Harnessing 2012 - Cloud presentationHarnessing 2012 - Cloud presentation
Harnessing 2012 - Cloud presentationAngela Hart
 
Cloud Introduction .pptx
Cloud Introduction .pptxCloud Introduction .pptx
Cloud Introduction .pptxyoussablatif
 
Cloud computing in Nepalese perspective
Cloud computing in Nepalese perspectiveCloud computing in Nepalese perspective
Cloud computing in Nepalese perspectiveResham Acharya
 
Cloud computing &amp; aws concepts
Cloud computing &amp; aws conceptsCloud computing &amp; aws concepts
Cloud computing &amp; aws conceptsABHINAV ANAND
 
Introduction to cloud computing
Introduction to cloud computingIntroduction to cloud computing
Introduction to cloud computingsuraj bhandari
 
Damien Norris: A suite of curated tools that organizations can use to locally...
Damien Norris: A suite of curated tools that organizations can use to locally...Damien Norris: A suite of curated tools that organizations can use to locally...
Damien Norris: A suite of curated tools that organizations can use to locally...NetSquared Vancouver
 
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?Open-source vs. public cloud in the Big Data landscape. Friends or Foes?
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?GetInData
 
The magic words of cloud
The magic words of cloudThe magic words of cloud
The magic words of cloudComidor
 
The Modern Tech Stack: Data Analytics in the Cloud for Developers and Founders
The Modern Tech Stack: Data Analytics in the Cloud for Developers and FoundersThe Modern Tech Stack: Data Analytics in the Cloud for Developers and Founders
The Modern Tech Stack: Data Analytics in the Cloud for Developers and FoundersAggregage
 
Kontena@Berlin OpenSource MeetUp
Kontena@Berlin OpenSource MeetUpKontena@Berlin OpenSource MeetUp
Kontena@Berlin OpenSource MeetUpJussi Nummelin
 
About Cloud Computing
About Cloud ComputingAbout Cloud Computing
About Cloud ComputingNaman Talati
 
Migrating Millions of Video Content Files to The Cloud Using AWS Snowball - S...
Migrating Millions of Video Content Files to The Cloud Using AWS Snowball - S...Migrating Millions of Video Content Files to The Cloud Using AWS Snowball - S...
Migrating Millions of Video Content Files to The Cloud Using AWS Snowball - S...Amazon Web Services
 
Hashicorp Vault - OPEN Public Sector
Hashicorp Vault - OPEN Public SectorHashicorp Vault - OPEN Public Sector
Hashicorp Vault - OPEN Public SectorKangaroot
 
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...confluent
 
Tungsten Use Case: Modernizing Medicine, a SaaS solution running on Amazon AWS
Tungsten Use Case: Modernizing Medicine, a SaaS solution running on Amazon AWSTungsten Use Case: Modernizing Medicine, a SaaS solution running on Amazon AWS
Tungsten Use Case: Modernizing Medicine, a SaaS solution running on Amazon AWSContinuent
 
Lucid logistics case study
Lucid logistics case studyLucid logistics case study
Lucid logistics case studyVMware Tanzu
 

Similaire à Cool stuff we use Cassandra on (20)

Cloud computing
Cloud computingCloud computing
Cloud computing
 
CLOUD_COMPUTING_PRESENTATION.pptx
CLOUD_COMPUTING_PRESENTATION.pptxCLOUD_COMPUTING_PRESENTATION.pptx
CLOUD_COMPUTING_PRESENTATION.pptx
 
Harnessing 2012 - Cloud presentation
Harnessing 2012 - Cloud presentationHarnessing 2012 - Cloud presentation
Harnessing 2012 - Cloud presentation
 
Cloud Introduction .pptx
Cloud Introduction .pptxCloud Introduction .pptx
Cloud Introduction .pptx
 
Cloud computing in Nepalese perspective
Cloud computing in Nepalese perspectiveCloud computing in Nepalese perspective
Cloud computing in Nepalese perspective
 
Cloud computing &amp; aws concepts
Cloud computing &amp; aws conceptsCloud computing &amp; aws concepts
Cloud computing &amp; aws concepts
 
Introduction to cloud computing
Introduction to cloud computingIntroduction to cloud computing
Introduction to cloud computing
 
Damien Norris: A suite of curated tools that organizations can use to locally...
Damien Norris: A suite of curated tools that organizations can use to locally...Damien Norris: A suite of curated tools that organizations can use to locally...
Damien Norris: A suite of curated tools that organizations can use to locally...
 
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?Open-source vs. public cloud in the Big Data landscape. Friends or Foes?
Open-source vs. public cloud in the Big Data landscape. Friends or Foes?
 
The magic words of cloud
The magic words of cloudThe magic words of cloud
The magic words of cloud
 
cloud computing by satwik
cloud computing by satwikcloud computing by satwik
cloud computing by satwik
 
The Modern Tech Stack: Data Analytics in the Cloud for Developers and Founders
The Modern Tech Stack: Data Analytics in the Cloud for Developers and FoundersThe Modern Tech Stack: Data Analytics in the Cloud for Developers and Founders
The Modern Tech Stack: Data Analytics in the Cloud for Developers and Founders
 
Kontena@Berlin OpenSource MeetUp
Kontena@Berlin OpenSource MeetUpKontena@Berlin OpenSource MeetUp
Kontena@Berlin OpenSource MeetUp
 
About Cloud Computing
About Cloud ComputingAbout Cloud Computing
About Cloud Computing
 
Migrating Millions of Video Content Files to The Cloud Using AWS Snowball - S...
Migrating Millions of Video Content Files to The Cloud Using AWS Snowball - S...Migrating Millions of Video Content Files to The Cloud Using AWS Snowball - S...
Migrating Millions of Video Content Files to The Cloud Using AWS Snowball - S...
 
Hashicorp Vault - OPEN Public Sector
Hashicorp Vault - OPEN Public SectorHashicorp Vault - OPEN Public Sector
Hashicorp Vault - OPEN Public Sector
 
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Tungsten Use Case: Modernizing Medicine, a SaaS solution running on Amazon AWS
Tungsten Use Case: Modernizing Medicine, a SaaS solution running on Amazon AWSTungsten Use Case: Modernizing Medicine, a SaaS solution running on Amazon AWS
Tungsten Use Case: Modernizing Medicine, a SaaS solution running on Amazon AWS
 
Lucid logistics case study
Lucid logistics case studyLucid logistics case study
Lucid logistics case study
 

Plus de DataStax Academy

Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftForrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftDataStax Academy
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseDataStax Academy
 
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraIntroduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraDataStax Academy
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsDataStax Academy
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingDataStax Academy
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackDataStax Academy
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache CassandraDataStax Academy
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready CassandraDataStax Academy
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonDataStax Academy
 
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1DataStax Academy
 
Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2DataStax Academy
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First ClusterDataStax Academy
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with DseDataStax Academy
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraDataStax Academy
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseDataStax Academy
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraDataStax Academy
 

Plus de DataStax Academy (20)

Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftForrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph Database
 
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraIntroduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data Modeling
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stack
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache Cassandra
 
Coursera Cassandra Driver
Coursera Cassandra DriverCoursera Cassandra Driver
Coursera Cassandra Driver
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready Cassandra
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
 
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1
 
Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with Dse
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache Cassandra
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax Enterprise
 
Bad Habits Die Hard
Bad Habits Die Hard Bad Habits Die Hard
Bad Habits Die Hard
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache Cassandra
 
Advanced Cassandra
Advanced CassandraAdvanced Cassandra
Advanced Cassandra
 

Cool stuff we use Cassandra on

  • 1. Presented by Michael Smyers Co-founder and SVP of Architecture Apache Cassandra at Zipwhip: Messaging with Multi Datacenter and Carrier-Grade Uptime Cool stuff we use Cassandra on
  • 2. WHO IS ZIPWHIP? ©2013 Zipwhip Zipwhip has moved text messaging to the cloud. Text messaging is no longer just for mobile phones. You can now send and receive text messages on your existing landline or toll free number using Zipwhip. On April 10th, 2013, Zipwhip officially became the world’s first text carrier by adding a second carrier, a text carrier, to a business’s existing landline or toll free number.
  • 3. ©2013 Zipwhip 02 CURRENT CARRIER CUSTOMERS
  • 4. CARRIER-GRADE CLOUD TEXTING Zipwhip peers with the wireless carrier ecosystem passing traffic freely between carrier networks and your business landline or toll free numbers. We are servicing nearly 20 million users and Zipwhip handles nearly 1 billion texts per month. ©2013 Zipwhip Zipwhip is a carrier-grade cloud texting platform. Wireless Operator Inter-Carrier Ecosystem Zipwhip Cloud Texting Inter-Carrier Texting Ecosystem AT&T Sprint T-Mobile C Spire Tracfone U.S. Cellular Verizon Zipwhip Platform The landline or toll free phone numbers are placed into the core routing tables for text messaging. The text messages flow in and out of Zipwhip’s platform.
  • 5. APPS FOR ANY DEVICE AND OPERATING SYSTEM ©2013 Zipwhip
  • 6. TWO-WAY CONVERSATION TEXTING APPLICATION ©2013 Zipwhip Zipwhips extensive cloud platform includes:  Unlimited texting  Unlimited storage  SMS cloud sync  Full suite of apps  Delivery receipt  Multiple user log in Coming Soon: MMS & Caller ID HTML
  • 7. WHAT ARE THE USE-CASES FOR CASSANDRA? Signal delivery to all connected devices - Event Sync: When you delete a message, the change cascades to all devices - Privacy: Who is getting a copy of my texts? Message (sms) storage (coming soon) ©2013 Zipwhip
  • 8. THE SIGNAL SERVER Always-on connection to many devices Devices maintain “presence” Active-active datacenter Scale horizontally Nameless nodes Zero configuration ©2013 Zipwhip
  • 9. HOW DO YOU SCALE THE SYSTEM? Add another Cassandra node (self discovery) Add another Signal Server node (self discovery) Binds into central ActiveMQ (JMS) Binds into central Zookeeper Binds into central Cassandra ©2013 Zipwhip
  • 10. SPECIFIC CASSANDRA USE-CASES ©2013 Zipwhip  Topology: Who cares about what?  Timeline: Ordered events that are to be delivered
  • 11. SUBSCRIPTION TOPOLOGY – WHO CARES ABOUT WHAT? ©2013 Zipwhip This stuff is only written when they first connect
  • 12. SUBSCRIPTION TOPOLOGY ©2013 Zipwhip 11 ChannelAddressChannelAddressChannelAddress ClientAddress ChannelAddressChannelAddressClientAddress ChannelAddress ColumnFamily: (Dormant+Active)SubscriptionTopology(Normal+Index) RowKey: addressString1 (channel or client addresses) ColumnName: subscriptionId_addressString2 (the opposite of above) ColumnValue: subscriptionId
  • 14. TIMELINE – THE EVENTS TO DELIVER ©2013 Zipwhip
  • 15. TIMELINE – THE EVENTS TO DELIVER ©2013 Zipwhip Event<T> Event<T> Event<T> Event<T> Event<T> Event<T> Head Last Acknowledged (for a given clientAddress) Channel: /user/3223424
  • 16. TIMELINE – HOW IT’S USED ©2013 Zipwhip 15 ColumnFamily: MessageTimeline RowKey: address.toString() ColumnName: timestamp ColumnValue: JsonSerializer.serialize(message)
  • 17. WHY CASSANDRA? ©2013 Zipwhip High write performance by adding new nodes Easy to scale – zero configuration Immediately consistent within the same datacenter Eventually consistent across all datacenters Auto expiration of old signals/subscriptions via TTL
  • 18. MILESTONES AND PRODUCT ROADMAP We’re testing out Cassandra with Signal Server Preparing to migrate all SMS inter-carrier traffic to Cassandra (currently sharded/master/slave MySql) ©2013 Zipwhip
  • 19. Contact Michael Smyers for more info at: msmyers@zipwhip.com Thank you!