Success StoriesApril 19, 2022

Why Ryzeo Relies on Real-Time Data for E-Commerce Behavioral Marketing

Why Ryzeo Relies on Real-Time Data for E-Commerce Behavioral Marketing

“We’re seeing really strong performance on both write and read. For database writes, it’s less than 20 milliseconds… If we didn't have DataStax to reliably catch all the data events we are throwing and write them to the database fast, our business would not be able to function.”

— Russell Miller, COO, Ryzeo

Understanding how to convert online shoppers into buyers is absolutely critical for e-commerce companies that compete with online marketplaces behemoths. A proven tactic: customized emails and website recommendations that provide targeted offers to shoppers based on their interests. 

Ryzeo offers email marketing software, specializing in personalization and cart abandonment solutions for mid-market ecommerce companies. Its automated personalization solutions integrate with WooCommerce, Shopify, and other platforms to help merchants transform massive volumes of their customers’ browsing data into sales. We recently spoke with Russell Miller, COO of the Sacramento, Calif.-based company, to learn how Ryzeo has built its business on the competitive advantages of real-time data using Apache Cassandra®.

1. Tell us about Ryzeo, the importance of real-time data, and why the business is built on Cassandra.

Ryzeo watches all of the events that shoppers take on a client’s website, such as when they browse, search, or view a product detail page. We have nearly 100 clients and each of them has thousands of visitors a day. We have to take in an enormous amount of data very quickly and write it to the database, then take AI-driven recommendation actions based on this data. Being able to quickly and accurately ingest a lot of data and store it efficiently is critical. Our Cassandra database provides the high performance and reliability we need.

For Ryzeo, real-time data is important so that we can respond to user events for our clients quickly. As an example, we have a client that sells Porsche parts. If an online shopper looks at a steering wheel, that event will immediately be sent to us and we will push it into the Astra DB cloud. So if that shopper looked at that steering wheel, but did not buy it within the hour, we trigger an email sequence to be sent to that prospective buyer. On the other hand if they did buy it, we note that too, since we don't want to send an unnecessary series of emails.

We send that information to our recommendation engine, where we use AI to generate intelligent recommendations for each prospective buyer. Based on the steering wheel a shopper looked at, we can present the top three other products that people who looked at that steering wheel also found useful. That's where we need a lot of real-time data capabilities, because feeding the AI model with all of the browsing and searching data makes our recommendation engine more accurate.

We also continually provide our clients updated reporting, pulling all the data out of Cassandra so they can monitor the performance of their e-commerce store overall, including conversion rates, sales, and orders resulting from each of the emails that we generate for them.

Our recommendation widget solution is currently in beta. This will allow clients to use our real-time data to make recommendations in a widget right on their website. So that if a shopper is looking at a product page for a steering wheel, we'll have a block on the website featuring recommendations powered by Ryzeo for alternate products.

We have to be able to reliably capture every single event that comes in. We really can't afford to drop any of them. If we were to lose some of that data, that would mean revenue-generating email sequences going unsent that would cost our clients money. We require high uptime consistently, because shoppers browse 24x7. DataStax Enterprise underpinned our Cassandra database for more than six years to help us achieve that.

2. What challenges were you facing in managing your own Cassandra environment?

We were ingesting so much data and growing so rapidly that we were maxing out of the limits of our hardware cluster and really needed to transition. Cassandra is a more complex database than MySQL. When you get a certain amount of data, you have to create another node.

We were spending a lot of time having to tune our own database. Cassandra has a unique feature in that it doesn't delete data, it overrides it. Unfortunately, to override it there's this activity called compaction, which essentially means that temporarily it needs twice as much space. It basically says, "Okay, I'm going to copy out this data over here while I delete it over here." The problem was that we were always worried our cluster would not have enough space for that compaction to take place without causing a meltdown, which would've been really horrible for us.

We were constantly having to delete data as fast as we could, and work very hard to see where we could remove data or change queries. We also didn't know what would necessarily trigger a compaction. We were having to spend a lot of time making some tricky trade-off decisions about what older data we could delete, in order for us to hold all the new data that was coming in. We spent many painful months trying to manage that process.

3. You were deployed with DataStax Enterprise for many years. Why did you decide to migrate to DataStax Astra DB and what was that like?

For about the same cost as managing our own cloud instance, with Astra DB we can have DataStax keep Cassandra up to date. We also get a really nice admin interface which we can use to monitor performance of the system, plus tech support to help us make some changes in our system that enable greater efficiencies.

DataStax has a very good reputation. They’ve been in this space for many years and we already had a good working relationship. In addition, we were on a very old version of Cassandra. The DataStax team was uniquely qualified to help us understand the best way to migrate our data to a managed cloud version of Cassandra in the form of Astra DB. 

Our setup is complicated at the moment. We're not moving all of our data over to Astra DB all at once, because we have so much. For the moment, we're writing to Astra DB, but we are reading from Astra DB in addition to our existing system. We have a goal of building up data on Astra DB over the course of a year, and since we only keep about one year's worth of data, then transferring over to Astra DB entirely. DataStax was an ideal partner to help us do this as a smooth transition.

We faced some challenges as we looked at how to do it, because we had a really old system that couldn’t communicate with a more modern instance of Cassandra, since our previous team had not kept up the updates. We would not have been able to talk to many alternative hosted cloud versions of Cassandra because of that software incompatibility. DataStax gave us a Cassandra Query Language (CQL) tool to use as proxy to the new system, which we thought was a unique, useful feature that others didn't have.

When this was too slow, DataStax was able to coach us to update our Java driver, which allowed our system to talk directly to DataStax without CQL. When we were doing some initial testing using CQL, we had really high latency, around 500 milliseconds and up, that we were concerned about. We had to adjust for a bigger pool requirement, because at various times we send batches of requests that are for all of our clients. That's such a large query set that it was bogging everything down. When we got into production, it got much better after tuning a few parameters to support our needs.

Now we’re seeing really strong performance on both write and read. For database writes, it’s less than 20 milliseconds. Our co-location facility is in Sacramento. It’s not super close to AWS West, so we were concerned about latency at first but ended up surprised at how good it was.

4. What kinds of impacts do massive volumes of real-time data make to Ryzeo’s clients?

Our clients can each customize their own rules-based logic. Our recommendation system is set up to be very fine-grained, so it can be as restrictive as a client wants for different parameters such as merchandise brand or various product attributes. If a client only wants to present a smaller number of recommendations, we have to make sure we have that much more data to still be able to provide high-quality recommendations.

For our newsletter emails we use e-commerce segment data. To do that, we have to pull an enormous amount of data from our DataStax Cassandra cluster. This enables our clients to target their customers by behavior and personalize the content.

For an e-commerce shop that sells women's clothing, for example, our client can segment its database so when a new line of pajamas debuts, we can email everyone that has looked at the pajamas category on its site in the past 60 days. That increases the email open rate and conversions significantly. It also decreases the unsubscribe rate, because shoppers are receiving emails that are much more relevant for them.

One of the main differences in what Ryzeo does versus some of our competitors is that we're not just sending cart abandonment emails. We also offer what's called browse abandonment, which is based on a product view, not on a product getting added to a shopping cart. Sending out emails whenever someone views a product, but doesn't purchase it, results in roughly five times the volume of emails. As a result, we have to handle that much more data and be that much more reactive.

This allows Ryzeo clients to make five times more revenue than they would by just putting in a simple cart abandonment system. Another way of putting it is that if you're only pursuing cart abandonment, you're only reaching the four or five percent of your visitors that put a product in a cart. Ryzeo helps clients reach the other 95% that look at a product but never added it to the cart.

The open rates of our emails are usually greater than 40 percent because they're very focused, with targeted content. The conversion rates we see on our emails typically range from three to six percent. Without Ryzeo’s one-to-one emails that specifically mention a product, if a client sent out a normal blast email blast, they would be lucky to get a six to eight percent open rate and a conversion rate of 0.3% or 0.4%. So we deliver 10 times the response rate a client would see otherwise.

On average, our clients see a total revenue increase of between eight and ten percent. The data we have suggests that our recommendation widget on a client’s website can increase sales up to another 30%.

Having real-time data from DataStax is a big part of what allows us to capture product views and searches, leverage intelligent recommendations, and take quick actions to present customized information to shoppers. It involves an enormous amount of data that has to be processed quickly.

We clock around 200 database reads and writes on average per second. If we didn't have DataStax to reliably catch all the data events we are throwing and write them to the database fast, our business would not be able to function.

Ryzeo is sending out nearly 500,000 emails a month. That's continued to grow and DataStax has helped make that happen. DataStax enables us to continue to scale with our clients, as our solutions propel their growth.

Watch the video and read the full case study to learn how DataStax Astra DB makes real-time data possible with seamless and scalability.

One-Stop Data API for Production GenAI

Astra DB gives developers a complete data API and out-of-the-box integrations that make it easier to build production RAG apps with high relevancy and low latency.