> From https://dialect-engineering.ai/sections/5-two-directions, the companion site to the paper "SaaS architecture when code is cheap". Draft, September 2026.

# SaaS architecture when code is cheap

## 5. Two directions of travel

Risk in a layered stack increases with depth. A change to the top layer is visible, comparable against the previous version, and reversible. A change to the data model or the deployment pipeline is none of those things, and every existing customer is standing on it. The same reasoning underlies the strangler fig pattern, which grows a new system around the edges of an old one and gives reduced risk as the most important reason to prefer it over a rewrite ([Original Strangler Fig Application](https://martinfowler.com/bliki/OriginalStranglerFigApplication.html), Fowler, 2004; [Strangler Fig pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/strangler-fig), Azure Architecture Center, 2026).

This gives two different programmes depending on what already exists. A new product is called greenfield here, and an existing product with customers on it brownfield.

| | Greenfield product | Existing product |
|---|---|---|
| Where the line starts moving | Bottom | Top |
| Why | Nothing is running yet, so the deepest decisions are the cheapest to make correctly | Revenue depends on the lower layers, so they go last or not at all |
| First work | Execution layer and data model designed to be driven by a document | Customer onboarding, then the user interface |

```mermaid
flowchart LR
    subgraph bf["Existing product: work downward"]
        direction TB
        B1["Step 1: Onboarding and configuration"] --> B2["Step 2: User experience"] --> B3["Step 3: Business rules, later or never"]
    end
    subgraph gf["Greenfield: work upward"]
        direction BT
        G1["Step 1: Execution layer and data model"] --> G2["Step 2: Capability grammar"] --> G3["Step 3: Generated surface"]
    end
```

The greenfield case is covered in section 7.6 of [The Domain-Specific Language as a Software Interface](dsl-as-software-interface.md). The rest of this paper concerns existing products, which is where most of the installed base and most of the revenue sit.

---

---

Previous: [4. Pricing what the customer assembles](https://dialect-engineering.ai/sections/4-pricing.md) · Next: [6. Onboarding first](https://dialect-engineering.ai/sections/6-onboarding-first.md)
