Youwin bets big on MongoDB


Youwin.com
is an online bookmaker that integrates over 30 web services such as payment providers and game providers. Last year, YouWin rebuilt its CMS with MongoDB, which halved its bounce rate and increased turnover by 10%.

YouWin’s Arek Goralski, Head of Development at WinUnited, spoke with us about what’s going on with MongoDB at YouWin.

image

You axed your old content management system 18 months ago and described your adoption of MongoDB as being organic. What helped you reach the decision to use MongoDB?

When I joined Youwin, the company size was quite small (around 20 people) and I was the first and only developer. Because of the nature of the business - we were reliant on other providers like casino games, sports book, poker and lots of payment options - it was hard to keep track of what was going on between particular systems. I needed something to gather data from all of those systems, and with new payment providers on the horizon, I needed something flexible.

I stumbled upon MongoDB, installation was a breeze, and after few days I had a working prototype. It performed very well and I managed to convince the management to get exclusive hardware for our Mongos because I knew we would use it in different areas soon. And we did use it as the next project was our own MongoDB-based CMS system.

At MongoDB London, you’ll talk about how to create a sophisticated logging system to track and analyze user data.  Can you give us a sneak peek on how MongoDB fits into this?

MongoDB is great for logging and aggregating data. Because of its dynamic schema we can log all data from different suppliers.  Each of them is a different integration, and each of them is sending data in different structure. Luckily all that custom data is searchable, so we can aggregate it easily and run wide range of reports to give us insightful results. With tailable cursor and capped collections we can notify the right people in real time when something goes really bad.


Some pretty big numbers are getting thrown around – a halved bounce rate, a 22% increase in active players, 1,200 SQL queries reduced to 2.... What are the 3 most important improvements you’ve seen since adopting MongoDB?

It's easy to create new CMS modules for us without spending too much time on how we should store and structure the data, because with MongoDB the way the application is handling the data is how the DB is storing it. We're less reliant on third-party subsystems to keep the website performing, so that's one of the best improvements we've achieved since we are in control. Also since MongoDB is easy to scale, we're not worried about the growth of the business and the impact of that to our infrastructure.


What tips and tricks do you have for those just getting started with MongoDB?

It's developer friendly - you just download MongoDB to your laptop and off you go, the installation is very easy so you can start prototyping within minutes. There are drivers to many programming languages, so yours is probably already supported.

It's also very easy to simulate extensive setups on a single machine - like replica sets and sharding, so you can perform fail over/recovery scenarios on your laptop which is sometimes very difficult to achieve with other databases.

Last but not least I recommend taking part in online courses organized by 10gen. I completed them both for developers and DBAs in parallel, it's not time consuming as the homework is easy to solve if you follow the lectures closely.


Aggregating data is probably one of the most important features of the CMS your team built with MongoDB. What’s on your wish list for MongoDB’s Aggregation Feature?

We liked the aggregation framework since the day is was introduced. It seems very natural to the way the data is filtered on Unix systems using the "pipeline system". Our payment and fraud department is using that a lot. We still didn't came across a query that we cannot implement using the aggregation framework, but if that happens - there's always MongoDB's integration of MapReduce we can use.

Our wish for the aggregation framework would be to support more than 16MB output though.


What’s on the current roadmap for YouWin?

Live betting will be the main focus for our company, so pushing the live prices to the customers at real time is a priority and MongoDB already plays a huge role here. We're also planning a major reboot to our frontend architecture. We'll also move our services closer to the end users by going to the cloud. Last but not least, we'll be introducing a complete new bonus engine for our customers so stay tuned!


Hear more from Arek on 9 April at MongoDB London 2013 - Europe’s largest MongoDB Day.