Your SlideShare is downloading. ×
Cool stuff we use Cassandra on
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Cool stuff we use Cassandra on

433
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
433
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 13. SUBSCRIPTION TOPOLOGY ©2013 Zipwhip 12
  • 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!

×