System Design
System design is the practice of choosing components, interfaces and data flows that satisfy a system's functional and non-functional requirements.
This branch will eventually cover storage, communication, messaging, scaling, reliability and related architectural choices.