Managing C++ Build Complexity Using Cuppa: A SCons-based Build System

By Jamie Allsop

In complex, highly regulated (and therefore constrained) environments it is a continual struggle to develop high performance systems and adapt them as constraints evolve. Typical architectures stagnate and performance improvements are focused more and more on known pain points with considerable (even heroic) effort employed to address them. Eventually that too is not enough and systems need to be re-architected and re-written. Ultimately leading to costly 3-5 year regeneration programs.

With the sweeping regulatory changes brought on by the 2008 Financial Crisis and the 2010 Flash Crash as a backdrop, the talk explores regulations, and problems, and their impact on architecture. Such regulatory changes only add to the already huge pressure on system implementors to provide high performance, ultra-low latency, throughput-scalable and highly available systems.

The talk looks at how these competing forces ― the desire for optimal performance coupled with a need to adapt to an ever changing regulatory environment, or indeed changing constraints in general ― have catalysed our work at to adopt an “algorithmic architecture” approach. This has allowed us to maintain agility while also facilitating the development of optimal systems based on solid architecture. It also turns out that C++ is a language is well suited to supporting the approach though the techniques are themselves language agnostic.