- Spring Framework
- Elastic Search
- API first
- Domain-Driven Design (DDD)
SPD Group started a partnership with Israel-based company BD-Innovations, which was a complex Business Support System (BSS) platform for modern telecom operators. In late 2019, floLIVE acquired BD-Innovations, and our development team joined the new owners. BD-Innovations was a cellular provider, with their own networks as well as an early version of a billing system for clients, named Rater Engine.
After the acquisition by floLIVE, Rater Engine had to be improved to remain consistent with the vision and demands of the new business. This complex task was entrusted exclusively to a team of 4 experts from SPD Group. After a rigorous analysis, our team decided to build a new Rater Engine, a 3.0 version, completely from scratch, which would align with the modern technological standards. We collaborated directly with the Solution Architect and Technical Director on this project.
floLIVE is the world’s first Software-Defined Connectivity (SDC) solution – a converged, cloud-native, global connectivity service with inherent billing that is fully designed and built for IoT services. floLIVE raised a total of $37M in funding in Series B, backed by Intel Capital, 83North, ARIE Capital Group, Dell Technologies Capital, Qualcomm Ventures, and Saban.
The company offers a full suite of IoT connectivity solutions for businesses, including:
- IoT Connectivity Platform
- Cloud-managed Mobile Private Network (LTE/5G)
- Global IoT Network as-a-service (LTE/5G)
- A Cloud-based BSS, built for IoT
floLIVE is a module platform, where every module is built around the main one based on the customer needs. The Rater Engine is just one of the modules covered by SPD Group, and we hope to take over more exciting tasks in the future, including IoT Networks, Cloud Services, and corporate-level solutions.
Rater Engine is the main focus of this case study. From the perspective of our client, the main value of this system lies in the improved customer experience and satisfaction, offering the best possible service in the market. From the technical point of view, it can be achieved by improving the speed of response of the high-loaded system. Our team is set to build a modern software solution according to the client’s requirements, with a close-to-instant speed of response that will ultimately add to the functionality, profitability, and reputation of floLIVE.
The three main challenges encountered by our team were:
- Understanding the client’s domain
- Optimizing the performance of the system
- The nine-month production deadline, as requested by our client
Our team managed to successfully overcome each of these challenges. Read all about the details and roadblocks in the next section.
Our team had sufficient experience in finance and e-commerce projects, but we were entirely new to the telecom domain. We needed to understand the smallest nuances to properly meet the client’s expectations and to devise the best way to deliver results. To achieve this goal, we conducted a great number of discussion sessions with the Solution Architect. We systematically analyzed particular use cases that were new to us. During these informal sessions, the Solution Architect provided us with all the under the hood insights we needed to get a complete perspective on the new domain.
Writing a code and implementing features is a part of the process for us, and is not considered a challenge, unlike elevating performance to the highest standards. The early version of our system, which we developed from scratch without any caches, could handle 200 requests per second. This number was too low, so our team switched to Apache Ignite, an in-memory data grid, which improved our performance to 2300 requests per second.
“The tech stack was set by our client. We had a demand to use Kotlin, Kafka, PostgreSQL, and Spring Framework. In some instances, the technologies we were asked to use were not the best option. We always had an opportunity to proactively suggest and discuss the most optimal technologies for the task or design approaches, and the client always supported us in it. This also happened with Apache Ignite – when we showed that it was not enough, and that the system would still hit the limit too quickly. The client agreed with us, and we found a better replacement.”
— Ihor Chanzhar, Tech Lead
That’s how we arrived at the point of implementing Hazelcast. Hazelcast gave us more than 2x boost to performance, with 5000+ requests per second, without scaling or any additional actions. We tested the system on databases with over 1 million users and were completely satisfied with the results. Sometimes, we had to do refactoring and rewrite certain modules of the system in order to adjust to the changing requirements and new functionality. We don’t have a legacy code, we are constantly improving the current one.
“In this industry, a 1-2ms event reaction optimization can be game-changing for a company; that’s why performance is so important. Previously, the SMS request time was 90ms. Our team managed to reduce this number to 30ms, which changed the performance dramatically. Sometimes, in multi-sessions, the first event can take up to 30ms with each, and the next as little as 2ms. That was the main performance-related goal for us.”
— Oleksandr Kosholap, Java Developer
floLIVE is very loyal and understanding to our development team because we always offer our own solutions to the challenges we encounter. However, the investors and the clients of the company set a very strict timeline that we had to adhere to. Even though a lot of additional requirements arose along the way, we successfully managed everything. Our team completed 30% of the entire project during the intense three-month period from January to March 2021. We have a team of professionals who have comprehensive knowledge about the requirements at each phase of the project; this was a contributing factor, along with the occasional overtime put in by our experts, which helped us meet the deadline.
During the development process, our team eventually expanded. In 2020, we already had 12 experts working on the project. However, due to COVID-19-related budget cuts, we were forced to revert to the initial team of 3–4 experts. In the first quarter of 2021, the investors returned, and we formed our biggest team to date with 21 dedicated experts. Our current team includes:
- Lead Architects
- Front-End Developers
- Back-End Developers
- QA Automation Experts
Since the Rater Engine module went to production on time and within the budget, the client was very impressed with our work and proactive approach. We continued our collaboration with floLIVE, as our partner trusted us with more new and exciting projects. The list of our current projects includes device management, the new and improved customer management system, software for 5G and IoT modules, and a billing system for corporate clients. We also have a platform team that monitors changes on the entire floLIVE platform. Our team hopes to make the platform scalable, migrate it completely to the cloud, and implement microservice architecture to the Rater Engine.
“It is almost a year since we started to work with SPD Group. During this short period, I found a great team of professionals that assisting us to develop and deliver different components of our product. The most important for us was to be able to scale up our development team fast enough but without compromising on the experience and knowledge level of the team. SPD Group achieved to build a very professional, dedicated team much quicker than expected!”
— Boris Shagalov, Co-Founder, VP R&D and SW Delivery, floLIVE
ARE YOU INTERESTED IN SOFTWARE DEVELOPMENT SERVICES?
Contact our experts to get a free consultation and time&budget estimate for your project.Contact Us