Wikimedia Foundation

What they needed

Twice each year, the Wikimedia Foundation operates a fundraiser for Wikipedia and the foundation’s other projects. With a banner atop every page on the one of the world’s most popular websites, the CiviCRM and Drupal-based fundraising system handles considerable traffic for approximately three months each year.

How we helped

We architected and implemented the entire donation processing system including developing APIs and multi-platform integration that has processed over $20,000,000 in donations using five different payment processors over the last two years. A backend system was designed and built to prevent bottlenecks during major donation pushes and ensure no donor data (500,000 records to date) is lost. Most applications involved were customized for scalability.

Project outcome

Four Kitchens ensured that Wikipedia’s payment system ran smoothly during the project’s mission-critical fundraising drive and that all donations were collected accurately. We also integrated new payment options into the system which processed more donations from more sources without sacrificing performance.

Using Drupal and CiviCRM as a foundation, Four Kitchens built a system to enable donations on the front-end offering multiple language and payment processor options and track origin metadata for each contribution. Four Kitchens improved CiviCRM to handle incoming data faster and protect against data loss during high traffic times, and the CiviCRM project later accepted relevant improvements into their main development for all future releases.

One of the issues encountered was maintaining availability during CiviCRM upgrades and heavy load. To solve both, Four Kitchens implemented a message queue using Apache ActiveMQ to queue donations from a MediaWiki-based front-end and dequeue them on the CiviCRM back-end. This allows CiviCRM to be taken down for maintenance without risk of losing donation data. It also allows CiviCRM time to “catch up” if incoming donation rates exceed the ability to integrate the data into the system. The system has proven highly reliable, even during Wikipedia’s highest fundraising traffic levels.

To make the incoming data more useful in improving fundraising strategies, Four Kitchens enhanced CiviCRM’s reporting tools and built highly scalable duplicate detection and merging tools to accommodate Wikimedia’s large database. We also integrated with currency conversion-rate web services to estimate the post-conversion value for non-USD contributions in reports.

During this work, the CiviCRM team gave Four Kitchens direct commit access to the CiviCRM project. Four Kitchens continues to have commit access to the MediaWiki project. Both demonstrate the trust these organizations have in Four Kitchens delivering consistently high-quality work.

At various times, Four Kitchens has sent people to Wikimedia’s offices in San Francisco (and, before their move, in St. Petersburg, FL) to provide training and focused collaboration, and Wikimedia has sent people from San Francisco to work at FourKitchen’s Austin, Texas offices.