Blog | Tombola Careers
Sweden Session Alerts and Time Limits
I would like to talk about the Sweden Session Alerts and Time Limits project we recently shipped from tombola International.
In preparation for the launch of tombola Sweden, we were presented with regulatory requirements that gave us the opportunity to take our responsible gambling tools to another level. We needed to allow players to limit the amount of time they could spend on our website (daily, weekly or monthly), and occasionally show them a message telling them how long they had been playing and how much money they had won and staked during the current play session.
This could be broken down in to a few tasks:
- Track the logged in time of our players
- Allow players to set a time limit
- Enforce these limits; The player should be logged out when their limit had been reached and denied login to the site until the next day/week/month
- Send and show alerts to players
We decided to develop this functionality standalone so that it wouldn’t directly depend on anything in our current .Net Framework driven website. This allowed us to use .Net Core, something that I had been excited to get stuck in to again since I had recently attended a workshop on building applications with .Net Core delivered by some amazing developers from Microsoft. This would also prove to be a very cost-effective solution.
Being an AWS customer, we were able to make use of a number of their products that helped us to have a working prototype up and running rather quickly. We built Docker images of our services so were able to deploy and run them in ECS (Elastic Container Service). We made use of SQS (Simple Queue Service) to communicate between services and used Parameter Store for our runtime configuration.
A huge benefit of developing in this way is that it allows us to offer this functionality to the websites of the other territories we operate in, without needing to modify code. We can simply deploy new instances of these Docker images and they will pull down their own country specific configuration from Parameter Store. They are stateless.
One thing that we were missing was a way to take the alerts that we were producing on the backend and deliver them to the player in real-time. We chose to use SignalR for this as it fit our needs perfectly and had a version supporting .Net Core.
Our Game team provided us with some great looking Vue.JS components to show these alerts in an eye-catching way. Here is one of them
I think we have provided a good, solid, portable solution. The addition of SignalR as a way to communicate with our players is a first for International Platform and opens up some exciting possibilities for our future developments.