Persosa Connects TV with Real-time Digital Experiences Using ScyllaDB Cloud
Viewers today consume a vast array of television programming via streaming platforms that contain commercials and advertising, along with product placements. Persosa connects those viewing experiences with the advertisers’ content on other platforms, creating a consistent and personalized brand experience.
Web personalization can increase conversions by 350%. Persosa’s goal is to extend those personalization capabilities to work with media and entertainment.
The Challenge
To connect TV and digital experiences in real time, Persosa needs to track and segment viewers, determine what they should see, and then serve them that content and render it in real time. Google Analytics, for example, has the luxury of taking hours before displaying data. In contrast, Persosa needs to make decisions in milliseconds.
As such, the first page-view of a session from a brand new visitor is Persosa’s most expensive request, with the highest latency. Those requests typically take two to three hundred milliseconds response time. Subsequent requests often fall in the 25 to 35 millisecond range. Persosa’s assets load on the page before the brand’s other assets.
For this reason, speed and latency are a very high concern. Persosa needed to find the right database to meet these requirements. Databases in the traditional stack just weren’t going to cut it. Relational databases, for example, were discounted immediately.
Kirk Morales, a co-founder and the CTO at Persosa, explained their thinking: “Even with something like MongoDB, which I’ve personally had a lot of experience with, the latency was too high. Having had some experience in the past with Cassandra, I started looking into Cassandra and from there, into Bigtable. Then, in researching that, came across Scylla.”
The Solution
Ultimately, the decision boiled down to Scylla versus Bigtable. Morales decided to go with Scylla for a few reasons. “First of all, Scylla’s consistently low latency reads were the most important factor for us,” he explained. “Having used Cassandra in the past, there was really no learning curve for me when I was building. And also when you’re looking at defining a schema and figuring out what your data model looks like, Scylla is a lot easier to understand than Bigtable. Ultimately that led to the decision.”
“Our experience with Scylla Cloud has been great. We’ve been meeting and actually exceeding our expectations on our request latency.”
– Kirk Morales, Chief Technology Officer, Persosa
As a startup, Persosa was not equipped to manage their own deployment. They initially used the only available hosted option, which at the time was Scylla on IBM Compose. “We could start at a couple hundred bucks a month and then it would grow with us. And at the time, everything worked great. It was easy to connect, fast deployment, and a pretty reliable service for a while.”
Eventually, Morales ran into a few hiccups and support delays. It was also clear that scaling would become expensive; the entry-level price point was a lot cheaper but at scale, it was actually not an affordable solution.
Morales took a look at Scylla Cloud (NoSQL DBaaS), but was concerned that there were only deployments on AWS. Persosa was running on Google Cloud Platform (GCP). After talking with Scylla and running tests, Morales found out that, even with cross provider latency, Scylla Cloud on AWS was actually faster than Compose on GCP.
“I dedicated a few days to building some tests and actually running them from our GCP environment to simulate what our reads and writes looked like. And the performance with Scylla Cloud came back consistently better every single time.”
“Our experience with Scylla Cloud has been great. It’s met all our expectations. It’s easy to manage the account. It’s been consistently fast. So we’ve been meeting and actually exceeding our expectations on our request latency. Our requests are actually faster than they were before, which is just great for the end user experience. We’re seeing our requests come in at about 10% of what they were — from 80 milliseconds on server side, and that includes Scylla reads and everything else, down to about 9 milliseconds on average. Most of that improvement is due to Scylla’s consistently fast reads.”
Persosa also saw greatly improved support from ScyllaDB. “To have that great experience as a client, but then also know that behind it we’re getting a great enterprise offering, that’s really the best of both worlds because, usually, you’re only getting one or the other.”