Someone said, "Architecture is about anything important, whatever it is." But, what software architecture really is. Four components construct a foundation of software architecture. Structure It is more like an architectural style such as monolithic, microservices, layered, etc. So, if an architect talks about microservice, for example, he just talks about the software structure he is building. Characteristic It defines the success criteria of software such as reliability, scalability, security, availability, etc. Decisions It defines the rules on how the software is constructed. For example, a decision in a software development project states that each service in a microservice system can only have full-access permission to its own database. When a certain element cannot fully follow the rule then it is called variance in the system. Principles The difference between decision and principle is that principle is more about providing guidelines for the dev