Boundary Enforcement with Layered Architecture: Preventing LLM Spaghetti Code

James Phoenix
James Phoenix

Summary

LLMs create spaghetti architectures by violating layer boundaries—routes accessing databases directly, domain logic mixed with infrastructure. ESLint boundary rules automatically enforce layered architecture (presentation → application → domain → infrastructure), catching violations at lint-time and guiding LLMs to respect architectural patterns through immediate feedback.

The Problem

Without enforced boundaries, LLMs leak code between architectural layers—presentation accessing infrastructure directly, domain logic depending on external APIs, business rules scattered across layers. This creates unmaintainable spaghetti code that’s hard to test, debug, and refactor. Traditional code reviews catch this too late; LLMs need real-time feedback during generation.

The Solution

Use ESLint boundary rules (eslint-plugin-boundaries) to automatically enforce layered architecture constraints. Define clear layers (presentation, application, domain, infrastructure) with explicit dependency rules (presentation can use application/domain, application can use domain, domain depends on nothing). Linting fails immediately when LLM violates boundaries, forcing correction and teaching proper architecture through rapid feedback loops.

Leanpub Book

Read The Meta-Engineer

A practical book on building autonomous AI systems with Claude Code, context engineering, verification loops, and production harnesses.

Continuously updated
Claude Code + agentic systems
View Book

Related Concepts

References

Topics
Developer ExperienceDomain Driven DesignLintingQuality GatesSoftware Architecture

Newsletter

Become a better AI engineer

Weekly deep dives on production AI systems, context engineering, and the patterns that compound. No fluff, no tutorials. Just what works.

Join 306K+ developers. No spam. Unsubscribe anytime.


More Insights

Cover Image for Computer Use Kills the Config Tax, Not the Trust Tax

Computer Use Kills the Config Tax, Not the Trust Tax

My sister hates job applications because they make her re-submit information she already has. That is the same pain as API app review, and the same agent that lives in my codebase can dissolve both. This feels insane, and it is the new default shape of the work.

James Phoenix
James Phoenix
Cover Image for Sentry Errors Should Spawn Agents on Your Own Machine

Sentry Errors Should Spawn Agents on Your Own Machine

A new production error is an event. Events should trigger work, not sit in a dashboard. So I wired Sentry to spawn a coding agent on my own hardware, point it at my exact stack, and open a draft PR with a fix.

James Phoenix
James Phoenix