Technical requirementsDefinition and the importance of software architectureA journey through software design and architectureSetting apart the realms of software architecture and software designGrasping the software architect roleThe impact of software architecture in recent timesPrinciples of software architectureExploring coupling and cohesionMastering couplingHigh couplingLow couplingKeeping the modules cohesiveSeparation of concernsImplementing SOLID principlesEmbodying KISS, DRY, YAGNI, and the Law of DemeterKeep It Simple, Stupid (KISS)Don’t Repeat Yourself (DRY)You Aren’t Gonna Need It (YAGNI)The Law of DemeterOverview of the most common architectural stylesCommon concerns when selecting a software architectural styleScalability – vertical scaling versus horizontal scalingMonolithic architectureClient-server architectureMicroservices architectureEvent-driven architectureEvent-driven architecture patternsServerless architecturePipe and filter architectureExplaining the core componentsSelecting a database by architectural styleExploring the CAP theoremSelecting databases by architectural styleSummaryQuestions