Simplicity-First Decision Tree | CD Smith

Simplicity-First Decision Tree

Start with the simplest architecture and ask whether it meets the need. A Yes means stop there. A No moves you to the next option, which costs more to build and run. The specialized patterns come last. If your system is mainly a data pipeline, a plug-in host or an audit ledger, skip straight to Specialized needs.

Yes: this meets the need, stop hereNo: try the next architecture

Walk the tree: click Yes or No on Q1 to begin.

    Patterns combine

    Q1–Q3 and Q8 decide the overall shape of the system. The others are often added to one part of it. A modular monolith with CQRS on its busiest module and events between modules is a common and sensible result.

    Where MVC and MVVM fit

    They are presentation patterns, not system architectures. Pick MVC for server-rendered web apps and MVVM for data-bound clients such as WPF, .NET MAUI or SwiftUI, inside whichever architecture the tree gives you.

    When in doubt, say Yes

    If a need is "maybe" or "someday", take the simpler option and revisit when the need is real. Moving to a more complex architecture later is usually cheaper than running one you never needed.