Discussion about this post

User's avatar
Piotr Gago's avatar

I’ve noticed a lot of confusion between VSA (Vertical Slice Architecture) and the concept of a “modular monolith,” which gained popularity after the initial hype around microservices faded and the term monolith began to lose its exclusively negative connotations.

One common issue is deciding whether a module should be treated as the same thing as a feature, command, or query. If so, the tendency is to make each module completely independent, often resulting in separate schemas and tables for different modules, multiple EF contexts, and similar design choices.

I believe that when people see a vertical slice drawn on a VSA chart extending down through the database layer, they often interpret it as “this slice must operate on a dedicated portion of the database.” While this approach is not inherently wrong, in many cases it is unnecessary.

Unfortunately, the terminology like microservices, modular monolith, VSA, CQS, CQRS etc. has become quite diluted.

Expand full comment
Dominik's avatar

Great summary for VSA - I think that important topic is how to keep the structure of the project. We can use tools like https://github.com/TNG/ArchUnitNET to make our rules more explicit

Expand full comment
3 more comments...

No posts