Architecture of Open Source Applications, Vol. 2

Dated Jan 19, 2026; last modified on Mon, 19 Jan 2026

The Architecture of Open Source Applications. Volume 2. aosabook.org . Accessed Jan 19, 2026.

Scalable Web Architecture and Distributed Systems. Key issues to consider when designing large websites, and some of the building blocks used to achieve these goals.

Firefox Release Engineering. Scripts and infrastructure decisions that comprise the complete Firefox rapid release system. Starting with builds and code signing, then customized partner and localization repacks, the QA process, and how we generate updates for every supported version, platform, and localization.

FreeRTOS. Like all OSs, FreeRTOS’s main job is to run tasks. Unlike all OSs, FreeRTOS is a real-time OS which runs on embedded systems.

GDB, the GNU Debugger. The overall internal structure of GDB, showing how it has gradually developed as new user needs and new features have come in over time.

The Glasgow Haskell Compiler. Over its lifetime, GHC has generally had 2-3 active developers. While GHC is stuffed full of cutting-edge research ideas, a great deal of effort us put into ensuring that it can be relied on for production use. We present an overview of GHC’s architecture, and a focus on some key ideas that have been successful in GHC, and a few that haven’t.

Git. How various aspects of Git work under the covers to enable distributed workflows, and how it differs from other version control systems (VCSs).

GPSD. A suite of tools for managing collections of GPS devices and other sensors related to navigation and precision timekeeping. GPSD has historically had an exceptionally low defect rate. The project has been very aggressive about incorporating technology for automated testing.

The Dynamic Language Runtime and the Iron Languages. Iron languages, e.g., IronPython, are dynamic languages that target the Common Language Runtime (CLR), and they are built on top of the Dynamic Language Runtime (DLR). Details on call sites, binders, adaptive compilation, and other techniques used to make dynamic languages perform nearly as fast as static languages on a platform that was designed for static languages.

ITK, the Insight Toolkit. A library of image analysis algorithms for image filtering, image segmentation, and image registration.

GNU Mailman. Free software for managing mailing lists. Problematic design decisions in Mailman 1 and 2, and their solutions in Mailman 3. Two overriding principles: no message should ever be lost; no message should ever be delivered more than once.

matplotlib. A Python-based plotting library with full support for 2D and limited support for 3D graphics. Can embed graphics in UI toolkits, with interactivity on GTK+, Qt, Tk, FLTK, wxWidgets and Cocoa. Can be called interactively from the interactive Python shell. Can be embedded in a headless web-server to provide hardcopy.

MediaWiki. Running on a top-ten website (100,000+ hits per second) on a shoestring budget. Heavy bias towards performance, caching, and optimization. Unlike generic CMSs, MediaWiki aims to support a community creating and curating freely reusable knowledge on an open platform.

Moodle. A site where students and teachers can come together to teach and learn. How the application is divided into plugins. The permissions system that controls which users can perform which actions in different parts of the system. The output generation with support for themes and localization. The database abstraction layer.

nginx. A free open source web server focused on high performance, high concurrency, and low memory usage. Additional features include load balancing, caching, access and bandwidth control, and the integrations with a variety of applications.

Open MPI. The Message Passing Interface (MPI) describes the reliable transfer of discrete, typed messages between MPI processes. MPI implementations are typically used in high-performance computing environments where input data sets are too much for just one server and MPI jobs are spread out across many servers working in concert to solve one computational problem.

Open Source Clinical Application Resource (OSCAR). An electronic medical record (EMR) system that permits the digitization of a patient chart, making it easier for a physician to deliver care. OSCAE has many subsystems that provide functionality on a component-by-component basis.

Processing.js. The Processing programming language offers a highly simplified model for 2D and 3D graphics. Processing.js brings it to the web without the need for Java or plugins.

Puppet. An ope source IT management tool written in Ruby, used for datacenter automation and server management. One of the guiding goals is to have the work it does make sense whether you’re looking at Puppet code or the system itself.

PyPy. A Python implementation and a dynamic language implementation framework. Its powerful abstractions make it the most flexible Python implementation.

SQLAlchemy. A database toolkit and object-relational mapping (ORM) system for Python. Provide an end-to-end system for working with relational databases in Python, using the Python Database API (DBAPI) for database interactivity.

Twisted. An event-driven (a programming paradigm in which program flow is determined by external events) networking engine in Python.

Yesod. A web framework written in Haskell. Exploits the static nature of Haskell to produce safer, faster code.

The Yocto Project. An open source project that provides a common starting point for developers of embedded Linux systems to create customized distributions for embedded products in a hardware-agnostic setting.

ZeroMQ, ØMQ. A messaging system for applications. Extreme optimization for use as an ultra-fast messaging system for stock trading. A generic system for building distributed applications and supporting arbitrary messaging patterns, various transport mechanisms, arbitrary language bindings. Improving usability and flattening the learning curve.