Embracing Complexity Entropy in Software Design Shivam Acharya and Peter Chai

Aug 30,2024

GopherCon UK


'Complexity' is often used as an abstract concept in programming and software design – but how does it really manifest itself in the systems we write?

Following the refactoring of one of our critical internal libraries, we explore the concept of entropy in software design to guide here we should place complexity in software systems, highlighting the gains and trade-offs of increasing/offloading complexity in different layers of software.

We will walk through how we used Go patterns and constructs to transform a fragmented and complicated API into a unified and structured one – opening the door to better scalability and extensibility – whilst showcasing how entropy can encapsulate code quality.