2.5 Decision Models: What Is Allowed?
A decision model represents allowed or selected alternatives. In this example, the decision is whether one service is permitted to reach another. In DocAble, one such model describes which services may communicate, and under what conditions.
The implementation contains HTTP clients, endpoints, credentials, deployment configuration, and network calls. The model reduces that machinery to a declared flow.
MODEL CARDService-flow model · Decision
- Engineering question — Which service may call which, and reach which resource?
- Model — a declared graph of services and the permitted edges between them: the public web tier faces the outside; every other node is internal and reached only along a drawn edge.
- Property — an edge means the relationship is part of the declared policy; an absent edge means the declared policy does not permit that relationship.
- Quality attribute — least privilege, architectural integrity, security.
Figure 2.5-1 draws the permitted calls as a declared graph — a short list of arrows. The public internet reaches the web tier; the web tier reaches the worker, the document editor, and a few others; the worker reaches generation, render, and OCR. An edge means the relationship is part of the declared policy. An absent edge means the declared policy does not permit that relationship.
The model describes intended relationships; it does not, by itself, make an undeclared connection impossible. The decision model declares permitted relationships; enforcement is separate. This gives engineers and agents a more useful question than does the repository happen to contain a call from A to B? They can ask instead: Is A supposed to call B?
The first question is descriptive; the second requires represented intent. Figure 2.5-2 sets the two side by side: implementation reveals that A calls C; the decision model says whether A may call C. Part III returns to this distinction when it separates correspondence from correctness and asks which declared relationships should be enforced.
The next chapter leaves relationships for quantities: how much a workload consumes, how fast it runs, and against what envelope those numbers are read.