Genera is soon to launch a new microservices platform to better serve our clients with innovative games; powered by Apache Kafka. We wanted to share why this move was the best decision for both Genera and the lottery operators we service. Our CTO, Niki Saarinen, will tell us the advantages of this new technology and why our clients, new and old, will benefit from its capabilities.
First off, tell us about this new platform and how it compares to what the traditional technology previously used.
Our previous technology approach was based on monolith architecture where all needed functionality is embedded in just a few huge application binaries communicating with one central database.
Our new technology approach is based on microservices and Apache Kafka in the centre as inter-service message broker. The game logic is contained as modules within the microservices to allow easy customizations without the need of re-writing or maintaining the services.
Apache Kafka, which is an open-source stream-processing software platform written in Scala and Java, allows us to eliminate most of the hard-dependencies between the microservices by using it as message/data broker between the services. For instance, if a new user is created and the data is really important, it will be pushed (produced) into Kafka. That way all the other services in need of the data can subscribe to Kafka and retrieve the data, regardless if the originating application is down.
Having no or very few hard dependencies allows not only easy scalability but also update of the services in a controlled manner without disruption on the execution of other requests.
What were the specific challenges faced that inspired this move to micro services?
Our previous method, was impossible to maintain. We could have several versions of the exact same game with millions of lines of code based on different operator needs.
We needed to eliminate expensive and cumbersome third-party solutions.
And lastly, we needed to think about how to best serve our clients. In the modern world, you need to be hugely scalable and with this old technology you can’t be.
What are some additional ways this will help the operators we serve?
When working with regulated operators, there is never a one-size-fits-all solution. All games need some level of customization for their technical environments, legislations and local player requirements. What may seem like a small change to the game would require a major amount of work. Essentially, any adjustment from the core game, was like rebuilding the game from scratch. This time and expense has now been eliminated via the microservices as we can revise just the relevant module. Also, if we have new functionality (i.e. social integration) we can easily push it out to all of our customers with ease.
In the end, our time-to-market for the game improves and the cost for our operators is reduced. As mentioned earlier, the platform is also much more stable, which means there is no compromise in service/function as a result of going in this direction.
What are some additional ways it helps us, or any company that wanted to use it?
We are building our platform for the future. This allows us to be hugely scalable, reliable and robust. In the end, we needed to move away from the conservative way of doing things. I would advise other companies with similar challenges to do the same.