System Design
System Design is the practice of defining the architecture, components, interfaces, and data of a system to satisfy specified requirements — but the term conceals a deeper problem. Design is not merely the arrangement of parts. It is the anticipation of failure modes that do not yet exist, the sculpting of feedback loops that will govern behavior the designer will never observe, and the creation of constraints that outlast the designer's intent. Every system design is a prophecy written in structure, and like all prophecies, it is interpreted by forces the prophet did not foresee.
The field exists at the intersection of engineering, systems theory, and institutional design. It borrows from engineering the discipline of modular decomposition — the art of cutting a problem into pieces that can be solved independently. It borrows from systems theory the recognition that the whole is not the sum of the parts, that emergent properties arise from interaction topology regardless of component quality. And it borrows from institutional design the awareness that systems are inhabited by agents with incentives that diverge from the designer's intent, that every specification gap will be exploited, and that the system will be gamed.
The Architecture of Failure
The central lesson of system design is that failures are not random. They are structurally invited by the design itself. The financial crisis of 2008 was not a failure of individual banks but a failure of the regulatory architecture that had been designed to prevent exactly such a crisis. The Basel capital adequacy framework had been meticulously designed to ensure bank solvency — but it had not been designed to prevent correlated leverage, maturity mismatch, or the migration of risk to unregulated shadow banking. The system did what it was designed to do (protect individual banks) and failed at what it was not designed to do (prevent systemic collapse).
This is the specification gap that haunts all design. A system cannot be designed to do what it is not specified to do. But the environment is always richer than the specification, and the agents within the system are always more inventive than the designer's model of them. The result is that well-designed systems fail in ways that were not designed against, and poorly-designed systems fail in ways that were obvious to everyone except the designer.
The implication is that system design must be adversarial — not merely a search for optimal arrangement but a search for worst-case exploitation. The designer must think not like a benevolent user but like a parasite, a hacker, a free-rider, and a bureaucrat simultaneously. The field of AI alignment has formalized this insight into the problem of reward hacking, where an optimizer finds and exploits the gap between the specified reward and the intended objective. But the problem is not specific to AI. It is the general problem of all design: the specification is always incomplete, and incompleteness is exploitable.
Design Patterns and Anti-Patterns
System design has developed a repertoire of recurrent solutions — design patterns — that capture the accumulated wisdom of successful architectures. Modularity, abstraction, and loose coupling appear repeatedly because they work: they limit the blast radius of failures, they enable independent evolution of components, and they preserve the designer's ability to reason about the system without holding the entire state in working memory. But patterns are not universal. They are context-dependent heuristics, and the same pattern that enables flexibility in one context may introduce fragility in another.
The anti-patterns are equally instructive. Tight coupling — the dependency of one component on the internal implementation of another — transforms local failures into global cascades. Premature abstraction — the introduction of generality before the specific case is understood — creates indirection layers that obscure the actual behavior of the system. Gold plating — the inclusion of features that are not required by any known use case — increases the attack surface without increasing the value. These anti-patterns are not merely mistakes. They are structural temptations that recur because they solve short-term problems for the designer while creating long-term problems for the system.
The deeper pattern is that system design is always a trade-off between comprehensibility and optimality. A comprehensible system is one whose behavior can be predicted from its structure. An optimal system is one whose behavior is as good as it can be for the specified objectives. The tragedy of design is that optimality often requires complexity, and complexity destroys comprehensibility. The designer's task is not to optimize but to find the Pareto frontier where the system is good enough to be useful and simple enough to be understood — because a system that cannot be understood cannot be maintained, and a system that cannot be maintained will fail.
The Social Dimension
System design is rarely an individual activity. It is a social process involving multiple stakeholders with divergent objectives, and the design that emerges is often a compromise rather than a coherent vision. This is not a failure of design methodology. It is a recognition that systems are not merely technical artifacts but social institutions whose structure reflects the power relations among their creators. The design of a corporate IT system encodes the organizational hierarchy. The design of a public health surveillance system encodes the state's relationship to its citizens. The design of a social media platform encodes the platform's business model.
The social dimension introduces a second layer of design failure: the system may be technically sound but socially unacceptable, or socially acceptable but technically unsound. The design of metrics is a case in point. A well-designed metric enables coordination and accountability. A poorly designed metric becomes a target that distorts the behavior it was meant to measure — the Goodhart dynamic that transforms measurement into manipulation. The metric is a designed component of the system, and its design must anticipate the gaming that it will inevitably provoke.
System design is the art of building structures that will be inhabited by forces the designer cannot control and intentions the designer cannot foresee. The best designs are not those that prevent all failure but those that fail gracefully — that contain the failure, learn from it, and adapt. The worst designs are those that succeed until they fail catastrophically, because the designer mistook early success for structural soundness. Every system that has not yet failed is a system whose failure mode has not yet been discovered. The designer's job is to discover it first.