Big Giving: How Microsoft Azure helps JustGiving make charity agile
When you've got millions of customer details but no way to connect them, it's time to build a bigger graph...
London-based social platform JustGiving offers an increasingly popular way to donate money to charities and worthy causes. Some 22 million users have so far raised about $3bn, and the service is always on the lookout for new ways to encourage people to keep donating.
"We connect people who care to the people they care about," explains Mike Bugembe, chief analytics officer at JustGiving, speaking to Computing at Microsoft's Future Decoded conference in London yesterday.
"But while fundraising is changing and growing quite rapidly, [the act of] giving itself isn't changing as dramatically as some of the other industries. It's still very much a transactional activity."
But matching people up with causes they may find appealing isn't the same as helping somebody choose a new tie, Bugembe asserts.
"We need people to be able to engage personally with the causes they care about. Our challenge is that we need two things: it has to be social, and has to be relevant - and that means we have to know what you care about."
JustGiving has 10 years' worth of transactional data at its disposal, with "millions of transactions from millions of people, giving to causes they care about, and doing really interesting things for charities as well", Bugembe tells Computing.
"The difficulty about what people care about is that it changes. So traditional methods of trying to be relevant, such as collaborative filters or segmentation doesn't really work."
Bugembe explains how two people "in the same segment and demographic" - say, two men in their thirties earning £38,000 a year and living in Luton - will not necessarily care about the same things.
"One could really care about cancer while the other could care more about animals," he says. "Traditional methods of analysis don't work.
"But it turns out the answer was staring us in the face - it's all about relationships," Bugembe says.
"The relationships that we have as individuals - the strength, the types - that's what really dictates what we care about. I care about prostate cancer because of what my grandfather went through. I now know about the National Brain Trust because of what a colleague went through."
To represent these relationships - including behavioural economics and sociological thinking - beyond "tables, and rows and columns", JustGiving needed a new form of graph, Bugembe says.
What it came up with, back in the summer of 2013, is the GiveGraph.
"GiveGraph is an algorithmic representation of our data, as nodes and edges looking at every single person as a system of associations and connections," Bugembe says.
"And when you look at things using a graph, you have all the algorithms available in graph form to hand, and suddenly the connections start telling a very interesting story."
The data crunching behind the GiveGraph is carried out by Microsoft's Azure platform.
With over 70 million new nodes drawn every day - people, causes and charities included - the GiveGraph is an enormous matrix that curently covers 285 million relationships within the JustGiving community.
"There is no way that looking at that data as rows and columns would give you the same insight," says Bugembe. "Not without waiting around five days, anyway."
Bugembe says Azure frees up his staff to focus on matching donors with causes, for which he says they have a 91 per cent success rate.
Big Giving: How Microsoft Azure helps JustGiving make charity agile
When you've got millions of customer details but no way to connect them, it's time to build a bigger graph...
"What's beautiful about platform-as-a-service is it means we can just focus on building the application - on the algorithms, the mathematics and the tech. Our engineers don't have to worry too much about the back-end stuff, so that's a real plus.
"Our engineers can focus purely on developing this technology, and nothing else, which is great."
Bugembe also likes Azure's flexibility, in that his devlopers can code in whatever language - Python, Java or .NET- is most appropriate for the task at hand.
"We might even need to use Linux at some point," says Bugembe, "and this for me was a very attractive feature. Certain problems are more suited to different types of technologies. Python's fantastic for depth, it's got a huge amount of libraries for that, and has a lot of machine learning libraries, and .NET is more proficient in other areas. We also use F#."
Bugembe explains that, given the often spontaneous nature of giving, the JustGiving platform must be capable of handling sudden peaks in demand. For example, when charity activist Stephen Sutton passed away recently, JustGiving had to handle millions of transactions in a very short time.
"Now imagine if the site couldn't cope with that load because it was too busy doing its calculations in the back end?" asks Bugembe.
"That's just not right for us. And so I don't need to explain the pedigree of a Microsoft solution that allows us to stay up, but also to stay secure without the information getting into the hands of anybody else."
More specifically, JustGiving leverages Azure's HDInsight Hadoop distribution which, says Bugembe, provides all the "heavy lifting" required to build its GiveGraph. Azure Cloud Services helps "move things", outputting analytics into table storage. The Azure Service Bus - Microsoft's scalable messaging system - meanwhile, "listens," says Bugembe, allowing the graph to a "moving animal".
"It's constantly changing all the time, and Service Bus listens to events so the graph can be updated," Bugembe says.
Via an Azure-based website, APIs then link everything back up to "the intelligence JustGiving already has in the cloud".
While JustGiving was already a Microsoft customer, with a proven track record in the .NET environment, Bugembe insists there was a rigorous tendering process before it opted for Azure.
"We had a lengthy evaluation process, because having this intelligence to hand is a very exciting proposition - it has to be treated correctly in order for it to be successful," states Bugembe.
"And that's why we ended up using Microsoft Azure."
The difference with Azure when placed next to its rivals, says Bugembe, is the platform's comparative "enterprise-readiness".
"There are some great solutions out there that can allow you to do some really technical things, but some of the problems we encountered when going through the development process suggested the testing was inadequate.
"You couldn't develop in the same way you can with .NET, which has a very strong framework."
A positive story of a company that's found exactly what it wants, then. And with Microsoft's Azure-related revenue rising by the quarter, JustGiving's probably not alone as Microsoft is starting to prove that its more open style of platform leverage might suit more use cases than, say, AWS' cloud dependency.
Add an increasingly generous approach by the company in terms of open source options, and Azure's star can seemingly only rise higher.