Vertical Slice Architecture (VSA)
Details
- Also known as
-
VSA, Feature Slices
Core Concepts:
- Vertical slices
-
Each feature is organized as an end-to-end slice spanning all layers (request, validation, domain logic, persistence, API)
- Feature cohesion
-
Code for a feature lives together regardless of technical layer
- No horizontal layers
-
Avoids traditional layered architecture (controllers, services, repositories) as primary organizing principle
- CQRS alignment
-
Naturally pairs with Command/Query separation per slice
- Thin shared layer
-
Minimal shared infrastructure; each slice owns its behavior
- Screaming intent
-
Folder/namespace structure reflects features, not technical concerns
- Independent evolution
-
Slices can evolve independently with minimal cross-cutting changes
- Reduced coupling
-
Changes to one feature rarely affect other features
- Key Proponents
-
Jimmy Bogard
When to Use:
-
Applications with many distinct business features
-
When feature teams own end-to-end delivery
-
To reduce merge conflicts in large teams
-
When traditional layered architecture creates too much coupling across features