Bernie Sanders has popularized small dollar donations as a mean to fund political campaigns, but having to process millions of small contributions brings technical challenges. The best example is from New Hampshire primary night, when Sanders told a national TV audience to go to berniesanders.com and donate $27. Web traffic peaked at 320,000 requests per minute and 2,600 credit card payments per minute.
ActBlue is a nonprofit tech organization that builds fundraising software for Democratic campaigns and committees, advocacy groups, and nonprofit organizations. Used by the Sanders campaign and 17,000 other organizations since 2004.
This presentation is about what we have learned in ActBlue building a high performance web application. The original version was written in 2004 and migrated to Rails in 2005.
Caching is one of the first steps to address performance, and we will discuss how we are using it. But we will cover other topics as well, like software architecture, which is sometimes overlooked, in spite of being more important.
For each solution, we will explain how it works, the complexities it introduces and how to address them.
We are keeping explanations as simple as possible and we are making few assumptions about the skill level of the audience. We start with basic concepts and build from there, so that even beginners can follow along and take away something useful.