You are here

Database Decisions:

To view this document as a PDF, click here.

causesquare logo
Problem:
Scale out horizontally while supporting transactional consistency & maintaining SQL

Databases Considered:
NoSQL, MySQL, NewSQL

Solution:
Elastic SQL database provides platform for future growth, saves time & money
 

For non-profit organizations and individuals seeking to fund new projects or general growth, donor engagement is essential to driving success. For CauseSquare, developer of a social giving platform, understanding how organizations drive that engagement is critical to their success. 

Yet when it comes to social platforms, initial uptake can start small but quickly grow exponentially as more communities, charities, and fundraising campaigns come online. As a small developer with big ambitions, CauseSquare wanted a database that could grow as they grow - with the ability to scale out horizontally, support transactional consistency for donation processing, and capitalize on the company’s existing expertise. 


ORGANIZING FOR A CAUSE

Charities and community organizers thrive on passion - from their staff, their volunteers, their donors... and even the services and tools they use. So it’s no surprise that the idea for CauseSquare came from a small group of developers committed to a variety of causes.

CauseSquare is a mobile engagement platform designed to help nonprofits, charities, community builders, and individuals better engage millennials to increase donor conversion and retention rates.

Says CEO and Founder Maher Arar, “The social fundraising market is rapidly evolving with millennials beginning to have a substantial impact on volunteerism and charitable contributions. As millennial buying power and time commitments increase, our customers want to make sure that they move away from traditional phone banks and direct mail campaigns to social media style engagement.” 


NEEDING MORE THAN MYSQL

In 2015, there were more than 1.6 million registered non-profits in North America and a record $373 billion in charitable donations made from individuals, corporations, estates, and foundations. Meanwhile, the Massolution Crowdfunding Industry Report, which analyzes platforms such as GoFundMe and many others, estimates that the North American crowdfunding market raised $9.46 billion in 2015 alone. It was therefore clear to CauseSquare from the beginning that the market potential for its mobile platform was substantial.

causesquare mobile appThat meant that the application and its underlying database needed to accommodate rapid growth. Yet as a start-up - and particularly a start-up focused on non-profit organizations and individuals - there wasn’t a lot of capital available to spend on a robust, enterprise-scale database.

To get the application off the ground, Darwish and his team initially began developing on MySQL. Its familiar interface and free cost made it a good place to just get started quickly. But Darwish was worried. His past experience told him that MySQL wouldn’t be able to support the application once it took off.

“MySQL was never going to be a good long-term solution,” explained Darwish. “The amount of work it would take - in terms of either database replication or worse, database sharding - to accommodate the scale we are expecting is just daunting. As we grow, we wanted to be able to focus on our application capabilities - not our database deficiencies.”


NOSQL A NO-GO

Database scaling naturally brings NoSQL options into question, and while the team gave consideration to them, they were quickly dismissed for a number of reasons. For one, CauseSquare has a charitable giving component to it, which means that security, transactional consistency and integrity, as well as data durability were must-have components. 

Secondarily, Darwish had assembled an experienced team with deep SQL skills. Turning to a NoSQL database would require a different set of skills and therefore incur higher costs and longer development times - all of which the team wanted to avoid.

“In the past I’ve turned to NoSQL for its scale, but it’s always taken a lot of work, cost, and time because of how much has to be built into the application layer - functionality that can and should be provided by the database,” continued Darwish. “Ultimately, we were ‘just’ looking for a SQL database that could scale horizontally. But that’s not an easy combination to find.”

SaaS companies - really any company that expects to scale - need NuoDB.”

- Walid Darwish, CTO, CauseSquare



TURNING TO ELASTIC SQL

While Darwish was familiar with an emerging category of databases focused on scaling out SQL often called “NewSQL,” there was one in particular that caught his eye.

“I had come across NuoDB at a previous company and been impressed with the architecture behind it,” said Darwish. “I really liked this idea of separating the transaction and storage layers so that they could scale independently - when we need more processing power, we can just add it - without affecting anything on the storage side.”

NuoDB’s distributed database design provides the same elastic scaling and continuous availability advantages found in popular NoSQL systems without sacrificing the strict transactional consistency, data durability, or familiarity of SQL that makes traditional relational databases so trustworthy.

elastic sql diagramSince its two-layer, peer-topeer architecture can be optimized for in-memory speeds, continuous availability, and elastic scale-out, NuoDB was the perfect choice for an application that could grow dramatically in a very short period of time.

Despite its distributed nature, NuoDB appears as a single, logical, SQL database to the application. The transaction layer handles requests from applications and caches data for fast access, while the storage layer ensures durability of data by writing it to disk, thereby providing ACID guarantees, data redundancy, and data persistence. Both layers can elastically scale out (and back) without any interruption to application service, simply by adding and removing peers. 

nuodb architecture

With NuoDB, you can add in-memory and storage host processes without interrupting service to the application. If a process fails, the application will automatically be connected to a different, available host.

“SaaS companies - really any company that expects to scale - need NuoDB,” said Darwish. “When you provide a service, your costs and profits are directly related to how many users you have. The more subscribers you have, the more money you get - but the catch is that you also have that much more data. MySQL effectively put a cap on how big we could get - by migrating to NuoDB, we’ve removed that cap.”

But elastic scaling wasn’t the only advantage NuoDB brought to the table. As a provider looking to support hundreds - and eventually thousands - of fundraising campaigns, CauseSquare also needed a database that could support multi-tenancy. Darwish and his team wanted to maximize resource utilization, but given the financial nature of the platform’s charitable giving component, they needed a database that could support - and separate - multiple customers using the same database and resources. NuoDB delivered on that too.

“Instead of making either architectural or operational compromises because the database couldn’t support what we wanted to do, we had the freedom to design the application the way we thought was best. It seemed that no matter what we wanted to do, NuoDB had an answer.”


SIMPLE DATABASE MIGRATION

Once they decided on NuoDB, the team began the migration off of MySQL. Since NuoDB supports full ANSI SQL and ACID, the transition was relatively painless. The team found that data types were similar and that the queries they had developed could effectively stay the same.

“Database divorce can be really hard, so we were worried about how much effort it was really going to take,” Darwish said. “What we found instead was that migrating to NuoDB saved us a ton of development time and costs compared to migrating to a NoSQL database - while still giving us the elastic SQL functionality we were looking for.”


WHAT’S NEXT?

causesquare dashboard“We were modeling CauseSquare on social media platforms that engage millennials - but that meant the application would generate a tremendous number of transactions every day - and could grow exponentially as our user base increases,” said CauseSquare CTO Walid Darwish.

Today, CauseSquare has more than 100 organizations and thousands of users subscribed to its platform. In addition, the team has just released a new module focused on crowdfunding to compete with the GoFundMe platform. Both of these products represent a huge opportunity in the North American market, and the company has already received interest from organizations in Europe as well. As it grows internationally, the team is looking forward to expanding their database to additional data centers.

The team expects the crowdfunding platform to take off very quickly once it is opened to the general public , and already have their eye on a new, related service that will take advantage of NuoDB’s ability to support hybrid transactional / analytical processing (HTAP) to provide real-time analytics to their customers.

“With the market opportunity in front of us, I don’t want to have to think about changing our database midstream because we can’t scale,” concluded Darwish. “With NuoDB underlying our platform, we never have to worry about whether we can handle the volume.” 

nuodb benefits

See NuoDB in action!

Get a live demo of NuoDB.

 


Seeing is believing. Schedule a session with one of our experts to see how NuoDB can:

  • Scale elastically and on demand
  • Maintain continuous availability
  • Automate disaster recovery