New book dives into the architecture of MediaWiki, git, puppet and other open-source applications

The second volume of the Architecture of Open-Source Applications book, which includes a chapter on MediaWiki, is now available online and on lulu.com.

The Architecture of Open-Source Applications is a collection of technical essays detailing the architecture of twenty-four major open-source applications.

The Architecture of Open-Source Applications is a collection of technical essays detailing the architecture of twenty-four major open-source applications. This is the second volume of a series that aims to help developers understand how great and large programs are constructed, and the decisions (or accidents) that led to the way they now work. The series draws inspiration from books used by architects that feature case studies of the great buildings of history.

This volume contains a chapter detailing the inner workings of MediaWiki, the wiki software that powers all Wikimedia sites, including Wikipedia.

The writing of the chapter was coordinated by myself and Sumana Harihareswara. While I put together the majority of the content, it wouldn't have been possible without the initial knowledge-sharing effort made by many Wikimedia engineers and volunteer MediaWiki developers, who also reviewed and improved the several revisions the text underwent.

Greg Wilson and Amy Brown, the book's editors, contacted the Wikimedia Foundation in August 2011 to offer to feature MediaWiki in the second volume. We chose a very collaborative approach to writing the chapter to ensure that the content was accurate and thorough, and also to split the workload among subject matter experts.

This volume dives into the inner workings of other tools familiar to the Wikimedia community, like Git, GNU Mailman, nginx and Puppet.

This is the second book published this year that contains a chapter written by Wikimedia staff, after the publication of Open Advice, a collection of essays, stories and lessons learned by members of the Free Software community.

I hope the chapter on MediaWiki, and also the rest of the book, will prove useful and interesting to the Wikimedia community and other developers. If you enjoyed it, learned from it, or would like to see more publications of this type, let us know!