Cool stuff we use Cassandra on
Upcoming SlideShare
Loading in...5

Like this? Share it with your network

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 2 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 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.
  • 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: Thank you!