Core concepts for reasoning about software systems and their design.
How software systems are decomposed into scalable, reliable components.