Software Engineering, Software Architecture, Microservices, Distributed Systems, Systems Thinking.
everything extendible. If your boundaries are right, you can always further chunk parts into smaller parts later on. Lastly, various parts of the system need to integrate in order to function as one system. This is called the integration layer and it includes how the parts communicate and depend on