With its neat row-and-column format, it may be great for storing financial information and customer account details, but for mapping and tracking the complex web of relationships that exists in a sprawling online social network, for example, a different approach is required.
This was the challenge that developers at online gaming company Gamesys were facing in 2011, when company bosses decided they ought to be able to get more value out of the friendships struck between players of its online Bingo, casino and slot games.
Toby O’Rourke, head of data platforms at Gamesys takes up the story: “The multi-user chat facility that runs alongside many of our games has proved very popular with players who want to congratulate winners, comment on gaming strategies or just to socialise,” he says.
“That’s led to us hosting a vibrant, real-world community of active players - but in order to get the most from that community, we need to understand it: who are our players, which other players do they interact with most on our site, what new products or features might give them a better customer experience?”
More importantly, he adds, Gamesys wanted to take a step further its strategy of rewarding players who introduced their friends to the site. “That’s something most online gaming sites do: if you refer a friend, you’ll get an incentive and they’ll get an incentive. It’s a valuable customer acquisition channel but it’s also an arms race: a competitor can always up the ante, by offering bigger incentives for player referrals.”
“We wanted to do something a bit different, making it more valuable for players not just to refer their friends, but also to join them online to play games together,” he continues. “So, if you’re playing Bingo in the same virtual room as your friend, if you win or they win, then you both get a bonus.” In order to allocate rewards, bonuses and incentives accurately, Gamesys would need to understand exactly who a player’s friends are and who referred who.
This was a job for a NoSQL graph database, O’Rourke decided. A graph database stores information in a structure that records the direct relationship between any two adjacent elements or ‘nodes’ - in Gamesys’ case, players. Each node has its own properties and connects to other nodes at ‘edges’.
According to Gartner analysts Merv Adrian and Nick Heudecker, this structure makes a graph database “ideal for storing and analysing connected data, for use in relationship analysis, route planning and optimisation, and identity access and control, among other uses.” Graph databases are also commonly used to power recommendation engines.
After assessing a number of graph databases - leading providers in this fledgeling market niche include Neo Technology, Objectivity, OrientDB and YarcData - Gamesys selected the Neo4j database from Neo Technology.
This step into the NoSQL world was a significant cultural shift for the company’s IT team, which largely runs on IBM DB2 databases, with a bit of MySQL thrown in. “It required a new mindset and new ways of working for everyone: developers, ops guys, the [quality assurance] team,” says O’Rourke.But over the past three years, Gamesys has gradually been introducing NoSQL technologies for both transactional and analytic processing.
O’Rourke and his team are also using NoSQL document store MongoDB, for example, to tackle other Big Data challenges and are starting to think about how they might start to handle stream-processing jobs. “We’re very much taking the view that we’ll use the best technology for the problem at hand, rather than stick with one vendor or one type of technology,” he says.
For now, he’s extremely happy with the choice of Neo4j to power high-value social features in the company’s games. Today, it holds details of over one million relationships between individual Gamesys players, ensuring that Gamesys’s customers get to play alongside their friends, introduce new ones and be rewarded accordingly.
“We want to grab as much of our customers’ online time as we can,” says O’Rourke. “If we didn’t provide these social features, we’d be making it too easy for them to go elsewhere.”