Zenly is a location-sharing mobile app that helps you find your friends’ whereabouts in real-time. They have run ScyllaDB in production for two and a half years. Learn how much they’ve scaled over that time, managing growing cluster using Google Kubernetes Engine.
To work as promised, Zenly’s services need to operate in real time. As Jean-Baptiste Dalido, Head of Infrastructure at Zenly, explains, “We have a very particular workload. Zenly is geo-location, so it’s mostly updates—a lot of updates. If you open the app and the position of your friend is two minutes old, that’s a problem. So the main issue for my team is to have a database that’s as fast as possible.”
This need for speed was challenged by the collection of databases Zenly had previously amassed. Dalido explains, “We had Elasticsearch as a main database. We had Redis for cache—and we had tons of Redis. We used Cassandra. It was difficult to track all the databases we had in production.”
Zenly had to streamline and consolidate. “We needed to unify the database for all the developers in the company,” said Dalido. “We needed things to be simpler, because time is critical.”
At first Zenly considered standardizing on Apache Cassandra, which they had a lot of experience with. “Cassandra is great, but we have lots of developers coming in and we didn’t have time to teach them all to be Cassandra ninjas. With Cassandra, application threads would stop for too long. We have small clusters and garbage collection is a deal breaker for small clusters.”
“ScyllaDB is Cassandra but it’s fast. That’s why we chose it. I’ve never seen a database as fast.”
– Jean-Baptiste Dalido
“We’ve been watching ScyllaDB since day one,” said Dalido. “ScyllaDB is Cassandra but it’s fast. That’s why we chose it. I’ve never seen a database as fast.”
With ScyllaDB, Zenly achieves higher performance from a much-simplified system. “ScyllaDB enables us to be live always. We don’t need cache. With ScyllaDB, we only have to use ScyllaDB with nothing in front of it.”
Zenly found the migration to ScyllaDB surprisingly easy. It’s now running ScyllaDB on 4 clusters—two single-region clusters and two double-region clusters. The use of multiple clusters brings redundancy and enables them to do some feature isolation. If a cluster dies for some reason, the Zenly application is unaffected.
Dalido emphasizes that “because Zenly is live, everything is about performance, always.” With ScyllaDB in production, he and his colleagues at Zenly are glad to report:
- 100% uptime across its 4 clusters
- In-production cluster performance of 300K request on 7 nodes
- p95 latency of < 1ms & p99 latency of < 3ms