email iconemail phone iconcall
Shiyi Gu

Context360 Analyzes Mobile App Context and Usage Data with DataStax Enterprise

By Shiyi GuJune 24, 2015

This post is one in a series of quick-hit interviews with companies using Apache Cassandra and/or DataStax Enterprise (DSE) for key parts of their business.  For this interview, we talked with Ratnam Tatavarty who is the CTO at Context360.

DataStax: Thanks for talking with us today. Can you tell our readers what you guys are doing at Context360? 

Ratnam: Context360 is based on the fact that smartphones are everywhere, but that app developers have not yet tapped into the full potential of how smartphone usage can benefit them. We use the sensors on phones to determine the users’ context which includes their app activity, location and other relevant events as per developers user case. 

Our SDK that sits on the phone collects all this information and then analyzes the usage patterns such as what apps the user utilizes, the frequency, their interests, etc., and provides a contextual snapshot of what the user is all about. Our customers can then determine not only what their users do with their app, but also outside their app.

DataStax: How is that information collected and used?   

Ratnam: We have a variety of triggers and rules in our app that determine what to collect and then we analyze all of that data and provide aggregations and analytics back to our customers that outline their app users’ personas.

We’re also able to push notifications to the user based on what we learn about them such as “push this notification to the users who belong to business professional persona at an appropriate context to each of them”. This is made possible by quite a few deep-learning algorithms.

          Fig 1: Context360 reveals mobile app insights from analyzing sensor and usage data

DataStax: Sounds like you’re collecting tons of data. Tell us what caused you to seek out a NoSQL database like Apache Cassandra.   

Ratnam: OK, so here’s the fun part. We started with Postgres on Heroku. However, we hit issues early on because we would, for example, add a million new users with each new app, and no matter how much we’d tune Postgres, it simply couldn’t scale to the level we needed. To be honest, it was quite a nightmare.

With our solution, adding a new app can mean adding two million more users in the next hour, and we realized an RDBMS was simply not going to work for us. We had no way of being able to predict and ensure the performance we needed.

We then looked at what others like us were using, and saw they used NoSQL databases. So we looked at MongoDB, Amazon DynamoDB, and Cassandra. At first, DynamoDB seemed to be the most natural fit because we run on AWS, but it was actually not easy to understand nor flexible enough to develop against.

Because I have a strong background in highly available databases/storage working at scale, I quickly saw that MongoDB would not scale for us like we need. So then we turned to Cassandra, and we’ve never looked back.

We had to change our mindset from RDBMS’s to NoSQL for our migration from Postgres, but once you understand how data needs to be modeled in NoSQL, it’s a breeze. I’ve reached the point now where I believe NoSQL and Cassandra is the most natural way to store data. 

DataStax: What was the key characteristic of Cassandra that stood out to you? 

Ratnam: For us, write throughput is critical. We have lots of events coming in from many smartphones and we need to be able to consume it all quickly. Cassandra is great at this. It handles all the write activity very well and is able to tackle huge spikes in I/O when we add new applications and the millions of users that go along with it.

DataStax: You not only decided on Cassandra, but also chose DataStax Enterprise. Why? 

Ratnam: So the second big thing to us after write throughput is being able to easily analyze and search the data we collect. With DataStax Enterprise, I can easily create groups of analytics and search nodes in a cluster that are devoted to those functions, and do it in a way where those different workloads don’t step on each other.

For analytics, we’ve created a number of Spark nodes that run different jobs on the collected data, and these help create the contextual personas I spoke about earlier.

We just added DSE Search to our platform last month. We added a new feature to our solution called real-time segmentation that helps us determine things like “what kind of users play this certain game at least 20 minutes a week.” We needed a way that let our customers create their own custom segment slices of the data and DSE Search fit the bill. We originally had no experience with it, but literally after two emails with DataStax, we realized how easy it was to use and implement.

DataStax: How do you manage your clusters? 

Ratnam: We’ve used OpsCenter since day one.

DataStax: If someone was brand new to NoSQL and came to you for advice on using Cassandra and DataStax Enterprise, what would you tell them to be successful? 

Ratnam: There’s a misperception about NoSQL is a hassle and that it’s not needed for small companies, but that’s wrong. We’re not a huge company but we deal with a lot of data, and RDBMS’s just aren’t up to the challenge. Don’t think that because you’re not a huge company, an RDBMS will work for you.   

Also, don’t think that NoSQL is too hard. It’s not. It’s actually very straightforward to use and implement.

DataStax: How would you summarize the benefits you’ve realized with Cassandra and DataStax Enterprise? 

Ratnam: We’re able to easily add new customers and all their accompanying data as often as needed. The ease with which we can add capacity when needed and have replication, availability built into it is huge for us.

Second, the number of times I actually look at our DataStax Enterprise cluster is just a handful of times per month. It really needs no attention or tuning. The management aspect of it compared to Postgres is day and night.  We use OpsCenter a few times a month to validate our performance levels and that’s it. That allows us to focus on other things vs. spending a lot of time sweating over database management.

DataStax: Great to hear. Again, thanks for chatting with us today.  

Ratnam: Sure thing. 



Your email address will not be published. Required fields are marked *