Weitere ähnliche Inhalte Ähnlich wie Cool stuff we use Cassandra on (20) Mehr von DataStax Academy (20) Cool stuff we use Cassandra on1. 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.
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.
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
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
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