January 8, 2014

Online payments leader, Klarna, has been on a multi-year process to upgrade its monolithic legacy purchase system to a next generation, distributed, service-oriented system. Klarna’s goal has been to build a horizontally-scalable, masterless, purchase taking front-end system that can easily handle Klarna’s rapid business growth ambitions. Klarna deployed Riak as the distributed database underlying their new purchasing system.

Recently, Malcolm Matalka, programmer at Klarna, presented on using Riak. Calling Riak a “joy to use,” Malcolm discusses how important it was to build a system that would enable them to “not be afraid of losing machines.” He explains, in detail, the challenges and benefits of moving from a huge monolithic, transaction-based system that has served Klarna well for the past eight years.

Early in the project, Klarna recognized that they wanted a system that matched the aspirations of Amazon. Malcolm notes that Riak is built on top of “very strong theoretical foundations,” citing the Amazon Dynamo paper.

Some of the highlights from his presentation include:

  • Klarna’s 9-node cluster running Riak already manages 40% of Klarna’s purchasing traffic
  • As a distributed system, Riak has delivered “infinite availability”
  • Rolling upgrades of Riak have been smooth. A heterogeneous cluster works fine and there is no need to worry about versioning
  • In addition to Riak, Klarna’s next gen purchasing system is supported by Splunk, Graphite, and Op5 for logging and monitoring

Malcolm’s talk on Riak at Klarna is available here. For more information on Klarna’s next generation purchase system, visit the Klarna engineering blog.