Exercise 3: Which Component Needs a Level 3 Diagram to Show Chapter 8's Bug — Possible Solution ==================================================================== THE COMPONENT IN QUESTION ------------------------------ Chapter 8's verified bug (mobile client returning 103.0, web client returning 103.5 for the identical $120 loyalty-member order) lived entirely INSIDE the client-side pricing logic, before either client called the shared Pricing API. The relevant component isn't shown as its own box anywhere on this chapter's own Level 1/2 diagram at all - "Mobile client" and "Web client" appear only as single boxes, with no detail about what happens inside either one. WHY A LEVEL 3 (COMPONENT) DIAGRAM ON THE CLIENTS WOULD BE NEEDED ------------------------------ A Level 3 diagram zoomed into "Mobile client" would need to show its own internal calculate_total() logic as a distinct component - and, critically, so would a separate Level 3 diagram zoomed into "Web client," showing ITS OWN independently-written calculate_total() logic. Only by drawing both clients' own internal components separately, side by side, would the diagram reveal that two DIFFERENT implementations of "apply loyalty discount, then $5-off" exist at all - information the Level 2 diagram's single "Mobile client" / "Web client" boxes actively hide by treating each client as one opaque unit. WHY THE LEVEL 2 DIAGRAM COULDN'T HAVE SHOWN THIS BUG ------------------------------ Level 2 (Container) diagrams, by design, only show WHICH major pieces exist and how they connect - they deliberately don't show what happens INSIDE any one container. This chapter's own diagram correctly shows that both "Mobile client" and "Web client" eventually connect to "Pricing API" - but a diagram drawn at this level has no way to represent that, before Chapter 8's own fix, neither client was actually calling that API for pricing at all; each was computing its own answer internally. The container-level view is accurate about WHAT EXISTS in the post-fix architecture, but it was never the right tool for surfacing a bug that lived entirely inside two containers' own private internals. WHY THIS WORKS AS AN ANSWER ------------------------------ The answer identifies the specific missing detail (each client's own internal pricing logic) rather than vaguely gesturing at "more detail would help," and it explains precisely why Level 2's own defining scope (containers and their connections, not what's inside them) structurally excludes the kind of bug Chapter 8 found, rather than treating the diagram as simply "not detailed enough."