Logate Dials In Higher Performance with Apache Cassandra
Logate boasts 15 years of experience in providing open source, enterprise software solutions and services that help telecom, financial services, and other firms achieve digital transformation and accelerate innovation. Based in Montenegro, the company has clients in Serbia, Austria, Montenegro, Croatia, Slovenia, Bosnia and Herzegovina, and Albania.
For the latest installment of our Q&A series, “Behind the Innovator,” we spoke with Logate’s Predrag Biskupović, CEO and Chief Technology Officer and Danilo Mišović, Technical Lead, about the company’s journey with Apache Cassandra.
1) How important are modern data apps and related technology to the success of your business?
With digital transformation, companies need to have as many of their services on the internet as possible, in order to keep up with the needs of their end customers. Telecom companies are getting more serious with 5G and advanced IoT services. In the banking sector, the European Union’s Payment Services Directive 2 (PSD2) and Open Banking initiatives are progressing.
All this means our clients need to have services available 24x7 with high performance. Advanced analytics for the huge amount of data that our clients have is essential to providing better service to end customers.
2) What are the priorities that Logate is focusing on?
Logate’s goal is to enable our clients to grow, while ensuring great performance by using distributed systems and leveraging technologies like Cassandra, Pulsar, and Kafka to enhance our AI capabilities, including providing real-time advanced analytics.
Our priorities include strengthening our expertise in open source distributed systems and migrating our products to HA platforms. We are also fortifying our AI and real-time analytics capabilities. This includes enhancing our OpenProvider network policy management platform, which helps telecom companies with user authentication, authorization, and accounting (AAA).
3) How are you using Apache Cassandra and what benefits are you realizing?
We have been using Cassandra since late 2017 and currently use Cassandra 3.11, which allows us to make applications fully adaptive and ready for cloud environments, including the possibility to scale up or down without service outages. Cassandra allows us to create systems that will work in multiple data centers as one logical cluster. As a result, our systems not only meet customer demand for geographic redundancy, which is mandatory today, but can also work in active-active, load-sharing mode across multiple data centers.
From a performance point of view, with Cassandra we can now achieve tens of thousands of transactions per second (TPS) with a geo-redundant setup, which was just not possible with our previous application technology stack.
4) What were you using before Cassandra and what were the limitations?
We used Galera Cluster, but faced scaling limitations. Adding new nodes in a cluster required dumping all tables, destroying the cluster, creating the new cluster with the additional nodes, then importing the database dump. This necessitated a service outage, which was not acceptable.
Also, we had a problem with data consistency for our geo-redundant scenarios. Galera Cluster was very sensitive to any replication problem between two data centers.
Our demands were very strict around how to scale and how to run in a geo-distributed environment. According to our benchmarks, Apache Cassandra was the best solution for all our requirements with the best results so we didn't seriously consider any other NoSQL cluster. In addition, it is an open source project, which is another advantage because we use open source solutions in each component of our products.
Now our applications work in active-active, load-balancing mode across multiple data centers. We are enjoying the benefits of scaling without outages, plus gaining linear performance boosts with each new node.
5) How did your team get the skills they needed to work with Cassandra?
We used courses available on the DataStax website and also Udemy. In parallel, we have a test cluster we used for all functional tests in the beginning. After that initial phase, we conducted performance tests as well. In addition, we use DataStax Luna support services to assist us with any challenges.
6) Are there things you can do now with Cassandra that you couldn’t before?
Our OpenProvider platform competes with other AAA Server products from some of the biggest names in the telecom industry, and by using Cassandra, our product is currently the only one that can work in a load-sharing mode across multiple data center locations.
This is a huge step forward on the technology side, and it’s a great opportunity for OpenProvider to be implemented by many more telecom customers that face the same problems around running AAA.
Using Cassandra, we also don’t have the significant cost for database infrastructure that traditional and proprietary DB vendors would need, so our product leads the market from a cost-efficiency standpoint too.
Our competition may offer geo-redundancy, but only with active-standby design. Also, we can offer our clients the possibility to easily extend their system on three or more data centers, with confidence that performance will be better.
Our goal is to have a fully stable cluster which can support the OpenProvider application for a TPS rate in the hundreds of thousands for fixed line, mobile, WiFi, and VoWiFi Authorization, Authentication and Accounting (AAA) functionalities.
7) Looking back, what advice would you give yourself at the beginning of this project?
The best advice would be to forget all knowledge about relational databases. All Apache Cassandra documentation should be carefully read and implemented in detail. To adapt your application for Cassandra, each query should be planned very carefully. Instead of using a basic table and a lot of materialized views, it is much better to use batch queries and synchronize data via the application. Definitely study the details for Java Virtual Machine (JVM) configuration!
8) How has DataStax helped you along your journey?
DataStax experts helped us with our JVM configurations and clarified a lot of details for the modeling of database tables. DataStax Luna consulting services have been a huge help for us.
To learn more, read the Logate success story here.