As an e-Learning company, Sumdog has developed an e-Learning system with a personalized learning experience for math and spelling practice. What’s special about the Sumdog platform is it achieves great learning results from fun, more specifically multi-player games that are proven to accelerate progress.
We dove into the existing environment built by Sumdog, and we created the solution using an Akka environment, combined with RabbitMQ working as an Enterprise Service Bus, to assure communication along with the rest of the components in the solution. Scalac engineers worked together with Sumdog to find a new approach for better scalability of the solution. Scalability has become one of the most important issues in Sumdog, as with every fast-developing company, due to the growing number of customers using the software, the evolution of existing features, as well as increasing requirements when it comes to adding new features.
- To change the architecture of a crucial part of the system, to achieve scalability, by among other things:
▸ reducing communication queues▸ providing location transparency for each user session
- To build a brand new HTTP interface that complements the outcomes of the previously mentioned improvements
Akka Cluster approach
To address the first project goal, we performed a detailed examination of components, taking into account the complex architecture of the existing system. After analyzing the initial situation, we decided, together with Sumdog engineers, to go in the direction of an Akka Cluster approach, which would eventually lead us to better scalability via architectural evolution rather than revolution.
The change in the architecture introduced clustering built on Akka Cluster, and resulted in:
Akka HTTP approach
To address the second project goal, and to provide a new HTTP direct interface for customers, we used a natural approach for the Akka environment and utilized the Akka-HTTP toolkit which provides HTTP-based services. After achieving goal no 1, Akka-HTTP allowed us to create convenient endpoints to reach backend logic from the frontend.
People who played a crucial role in the facilitation of the entire release process
Our Agile team:
The Client’s team:
After the successful implementation of the proposed Akka Cluster approach, our engineers demonstrated the principles of a developed cluster solution in a dedicated environment:
Our solution achieved our agreed goals and the following key benefits:
See how our team contributed to customers’ success.