You are viewing content from a past/completed QCon

Essential Complexity in Systems Architecture

Simplicity is a virtue - simple systems should be easier to understand, easier to work on, easier to operate, and thus, more reliable. Everyone agrees on this in principle, to the extent that the ideal of promoting simplicity now appears in industry job ladder descriptions.    

But what does simplicity actually look like in terms of distributed systems design? A naive approach might suggest that it means removing components of your system, reducing it to the essential business logic, and as little else as possible. However, by attempting to minimize the number of boxes on an architecture diagram we can create significant complexity elsewhere, particularly as regards understanding and controlling system behavior.    

This talk will look at some real distributed system architectures and examine the tradeoffs that they make between the number of moving parts and operability. By the end of the talk, attendees should appreciate the subtle ways that apparently simple systems can create complex and difficult to understand behaviors.


Laura Nolan

Site Reliability Engineer @Slack, Contributor to Seeking SRE, & SRECon Steering Committee

Laura Nolan's background is in Site Reliability Engineering, software engineering, distributed systems, and computer science. She wrote the 'Managing Critical State' chapter in the O'Reilly 'Site Reliability Engineering' book, as well as contributing to the more recent 'Seeking SRE'. She is a member of the USENIX SREcon steering committee. 

From the same track

View full Schedule

3 weeks of live software engineering content designed around your schedule.

Don’t miss out! Save your seat now