Vertical SliceはLayerではなくUse Caseの変更軸に沿ってコードをまとめる
Vertical Slice Architectureは、Controller / Service / Repositoryのような横断Layerより、1つのrequest/use caseを成立させるコードを近くへ置くことを優先する。Jimmy Bogardは2018年の説明で、各requestをdistinct use caseとして扱い、slice間のcouplingを減らしslice内のcouplingを高める方向を示した。
Application Operationを中心語彙にする設計とは相性がよい。例えば ArchiveProject sliceの中にinput validation、authorization coordination、domain invocation、必要なdata accessをまとめれば、変更箇所を局所化しやすい。
features/
archive_project/
operation
input
authorization
persistence glue
tests
この利点は、Clean Architecture的に「必ずController→UseCase→Repository interface→Repository impl」と横断させるより、単純なuse caseではファイル間Navigationを減らせることにある。2026年にはBogard自身もAI-assisted developmentとの組み合わせで、couplingとreview cycleを短くする観点を議論している。
ただしVertical Sliceは「全コードをfeature folderへコピーする」ことではない。Domain invariantや本当に共有されるmechanismまで複製すると一貫性を失う。またSliceはBounded ContextやModuleと同義でもない。個々のOperationより大きなownership boundaryは別に必要になりうる。
そのため中規模Applicationでは、Modular Monolith + Vertical SliceはOwnership境界と変更単位を別スケールで持つ のように Moduleを外側のownership boundary、Vertical SliceをModule内の変更単位 とする組み合わせが考えやすい。