Manfred Steyer

Sustainable Angular Architectures with Nx and Strategic Design

Is your large Angular app becoming an unmaintainable monolith? Learn how Strategic Design and Nx can enforce clear architectural boundaries and prevent coupling.

Sustainable Angular Architectures with Nx and Strategic Design
#1about 4 minutes

Using Strategic Design to decompose large systems

Strategic Domain-Driven Design (DDD) provides a methodology for decomposing a large, complex system into smaller, more maintainable sub-domains to prevent tight coupling.

#2about 6 minutes

Understanding the benefits of using monorepos

Monorepos simplify development by co-locating all projects, eliminating dependency version conflicts, and removing the burden of distributing internal libraries via NPM.

#3about 2 minutes

Enhancing Angular monorepos with Nx tooling

Nx extends the Angular CLI with powerful tools for monorepos, including the ability to visualize the dependency graph between libraries to prevent unwanted coupling.

#4about 4 minutes

Structuring libraries with Domain-Driven Design principles

Organize your monorepo by creating folders for each domain and a shared kernel, then categorize libraries into feature, UI, domain, and utility types to bring order.

#5about 3 minutes

Defining and enforcing architectural access restrictions

Implement strict access rules, such as layering where higher layers access lower ones, and domain boundaries to prevent direct communication and ensure loose coupling.

#6about 4 minutes

Using APIs to safely share code between domains

Avoid an overgrown shared kernel by creating dedicated API libraries that expose a small, stable public interface from one domain for use by others.

#7about 3 minutes

Isolating the domain model and business logic

Structure your domain library into three parts: the core domain logic, an infrastructure layer for data access, and an application layer with facades for state management.

#8about 8 minutes

Code walkthrough of an Nx and DDD project structure

A practical demonstration shows how an Nx monorepo is organized into apps and libs, with domains containing layered libraries and using index.ts to define public APIs.

#9about 4 minutes

Enforcing architectural rules with Nx linting

Nx can automatically enforce your architectural boundaries and layering rules using custom linting configurations, preventing violations directly in the IDE and CI pipeline.

#10about 5 minutes

Speeding up CI builds with Nx affected commands

Use Nx's `affected` commands to intelligently run tests and builds only on the projects impacted by your code changes, dramatically speeding up your CI/CD pipeline.

#11about 4 minutes

Summary of sustainable architecture principles

A recap of key takeaways including subdividing applications into domains and layers, using fine-grained libraries as units of recompilation, and enforcing rules with Nx.

Related jobs
Jobs that call for the skills explored in this talk.

Angular Developer

Picnic Technologies B.V.
Amsterdam, Netherlands

Intermediate
Senior

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.