It started with an idea.
Nearly three years ago, Walid Darwish and some friends and colleagues (who happened to be fellow developers) noticed something among themselves.
"We all did work for not-for-profit organizations," he says.
They all had causes that they donated time and money to in their daily lives.
But being developers, it wasn't enough to just volunteer on the weekends. They wanted to put their skills to work, too. So, after taking about a year and a half to consolidate their thoughts, they banded together under a new banner — CauseSquare, available on Google Play and Amazon and coming soon to the App Store.
"You can look at it as a marketplace," Darwish says. "If you have an interest in certain causes, such as human rights or animal rights, and you want to find people who actually do work — actual work — to promote that cause, who do advocacy work for it, you go to CauseSquare."
Charitable organizations can register on the app and put up news, videos, campaign updates, all that good stuff. Meanwhile, users can search those organizations to find those that interest them. With that done, they can donate their money or time (through volunteering) via the app itself. If they want, they can also share their causes' updates through social media to help spread the word.
"You can start engaging on your own time," Darwish says.
It's a win-win.
A year and a half after co-founding the company, Darwish proudly remains CTO of CauseSquare. But anyone who's worked with data can imagine the sheer amount of information getting thrown around.
"When you talk about marketplaces, the amount of data is huge," he says. "You can't use traditional databases."
The idea of one database, one machine, just plain doesn't work in this situation. Knowing that the amount of data would skyrocket by the day, the team knew their options were being limited for them.
After all, interacting with the network they were planning on putting together was a mammoth task. "Are you streaming? How much are you streaming? What device are you using?" Darwish says, reiterating the questions his team had to consider.
Fortunately, in the world of November 2015, there was an answer: distributed databases.
And there was certainly no shortage of options. Sure, traditional databases were out, but there were still plenty of alternatives. MongoDB, Couchbase, and Apache Cassandra got looks, but in the end, the team wanted to stay within the SQL realm.
A standard SQL interface was important for a couple of reasons. First, it's familiar. Anyone who has worked with databases probably already knows that. And while NoSQL has certainly seen a resurgence in the past decade, the skillsets are different, and it would have required a completely different development process. Then there was the eventual consistency so many databases are using. Given that the team was hoping charities would be using this for donations and scheduling, eventual consistency wasn't something they could wait for. Overall, the NoSQL outlets added up to more specialized knowledge and higher costs, which the team wanted to avoid. Meanwhile, as mentioned, the database had to be capable of dealing with Big Data underpinning.
"So, we decided to narrow our search to these types of databases," Darwish says.
NuoDB (docs) was founded in 2008 as NimbusDB. As its old name implied, it was designed to play nicely in the cloud. Meanwhile, HP Vertica (docs) is a column store that meshes nicely with Hadoop and other aspects of Big Data architecture.
Both databases were promising, but much like in Highlander, there could be only one.
Of course, the SQL interface was a big hit, and both of those had it. But what else was the team looking for? Well, scaling, for one. Both databases were built to handle big datasets, but Darwish says NuoDB's cloud-ready infrastructure just fit better. The built-in horizontal scaling ability was a big hit with CauseSquare's developers, as was its transactional system.
Darwish had also been keeping his eye on NuoDB for some time. It was a contender for another project he had been working on several years before CauseSquare, but it hadn't quite matured to where his company needed it to be.
This time, though, he and the team were ready to pull the trigger. "NuoDB saved us a lot of development," he says.
But of course, making the decision is just part one. Then, there's the actual implementation.
Fortunately, their homework paid off. NewSQL was not only familiar and accessible to the team, but NuoDB, specifically, seemed to play well with everything CauseSquare threw at it.
"When we built our application, we all came from different backgrounds, but everything fit very nicely," Darwish says. "We never had a problem where we said, 'You know, NuoDB just can't do that.'"
One of the most helpful aspects is the database's variety of access. The team uses a hybrid node from database aspects, and they need to access it with both JDBC and JPA — using EclipseLink. Fortunately for them, there have been no problems with that.
Of course, the Golden Rule of databases is that no one database is perfect for every solution. In this case, NewSQL was the way one company opted to go — while considering a variety of other potential, perfectly workable databases.
But while Oracle, among others, might rule the DB roost, Darwish is convinced the trend is moving toward a more distributed environment.
This is Gartner's Magic Quadrant for operational database management systems from last year. As you can see, NuoDB is firmly within the Visionary quadrant, as is MemSQL, another distributed, NewSQL solution. VoltDB, yet another, is creeping toward that same quadrant. And that's not even considering the variety of NoSQL solutions up for consideration.
Darwish says this is to be expected, positing about NuoDB in particular, "They’re a Visionary now, but I wouldn’t be surprised that in a very few years, they’ll be a market leader."
Darwish probably says it best himself. "It’s building up. We need distributed databases. A single machine doesn’t work anymore."
Of course, he's referring to larger, more data-intense projects, but the point stands. NoSQL's recent resurgence has helped fill gaps left by the SQL ecosystem. Meanwhile, NewSQL has risen to help put a familiar face on NoSQL's far-reaching changes, while simultaneously keeping its better characteristics, particularly the ease of scale, around.
In this case, NuoDB provided a SQL interface, horizontal scaling, the ability to easily integrate their tools and connections, and ACID compliance (with a focus on immediate consistency). That was a winning combination for their stated priorities.
And if you want to see what it all went toward, by all means, check out CauseSquare. There's no shortage of worthy causes for consideration, if you've got some spare cash or time on your hands. After all, what's a bit of Big Data without Big Caring to go with it?