Software Engineering, Software Architecture, Microservices, Distributed Systems, Systems Thinking.
All large successful systems, whether business processes, assembly lines, services, or software programs, need to arrest growing complexity successfully. Complexity manifests in terms of known unknowns, unknown unknowns and unknowables. These are in increasing order of how hard they can be to