Day #6 - Vertical Architecture

Today, we’re kicking things off with a talk that encapsulates the essence of scalable Angular development in large-scale applications. We’ve chosen this talk as it introduces one of the most transformative architectural principles—Vertical Architectures—a foundational concept for managing complexity in enterprise software.

Why This Memory?

In the world of Angular development, scaling applications without devolving into a tangled web of dependencies is critical. This talk by Manfred Steyer provides a structured and practical approach to achieving that goal. It's a cornerstone for any Angular developer looking to design maintainable and scalable systems that can grow alongside the business.

What’s This Talk About?

Manfred dives deep into vertical architectures, explaining how to:

  • Decouple application features using "verticals," which are independent, loosely coupled modules.
  • Align your team structures with application architecture to avoid inter-team dependencies, as per Conway's Law.
  • Utilize domain-driven design (DDD) to map real-world business domains into your application’s architecture.
  • Implement team topologies to reduce cognitive load and improve development flow.
  • Enforce architectural boundaries with tools like Sheriff and Detective.

Why Is This Important for Angular Developers?

Vertical architectures aren't just about neat code organization—they're essential for:

  • Preventing cascade failures: Changes in one module don't accidentally break another.
  • Enabling team autonomy: Teams can focus on their respective features without frequent cross-team coordination.
  • Supporting growth and flexibility: The application can evolve without being bogged down by technical debt.

As Angular applications grow, a robust architecture ensures that adding new features doesn't feel like navigating a minefield.

A Glimpse into the Concept

Manfred starts with a relatable metaphor: "Good fences make good neighbors." This principle applies directly to software—well-defined boundaries between verticals keep your application modular and maintainable. He explains how features within a vertical are tightly coupled, while communication across verticals is minimized, ensuring changes are localized.

Key Takeaways:

  1. Verticals and Team Alignment: Vertical size should match team capabilities, and architecture should mirror team structures.
  2. Domain-Driven Design: Use DDD principles like bounded contexts and ubiquitous language to create domain-aligned verticals.
  3. Layered Architecture: Subdivide verticals into layers—features, UI, data, and utilities—to enforce clear dependencies and facilitate reuse.

Manfred showcases Sheriff and Detective, tools that enforce architectural boundaries and analyze hidden couplings and hotspots, ensuring your architecture remains robust.

Why Watch the Full Talk?

  • Engaging Analogies: Manfred's metaphors (e.g., pivotal events as movie scene cuts) make complex concepts approachable.
  • Actionable Advice: Learn how to implement vertical architectures using tools like NX, Sheriff, and domain-driven design.
  • Live Demonstrations: Witness the tools in action as Manfred walks through real-world examples.
  • Forward-Thinking Insights: Discover upcoming innovations like barrel-free modules in Sheriff for cleaner architecture.

Whether you're building your first Angular app or managing a sprawling enterprise application, this talk is packed with practical insights and tools to level up your development game.

🎥 Watch the Full Meetup Recording Here and get inspired to scale your applications with confidence!

Let’s build better software—one vertical at a time. Stay tuned for tomorrow’s memory in our Angular Advent series!