Architekturu nevolím podle názvu vzoru, ale podle složitosti problému. Cílem jsou čitelné hranice, bezpečné změny a řešení přiměřené velikosti aplikace.
Jak o architektuře přemýšlím
Hranice UI, Application, Domain a Infrastructure
U složitějších částí odděluji vstupy, use cases, obchodní pravidla a technické detaily, aby změna neprotékala celým systémem.
Porty a adaptéry pro vnější svět
Aplikační logika závisí na vlastním rozhraní; databáze, fronta nebo externí API jsou jeho konkrétní adaptéry.
Transakce u use case
Transakční hranici držím tam, kde aplikace provádí jednu související obchodní operaci, ne náhodně uvnitř infrastrukturního detailu.
Pragmatičnost před dogmatem
Když složitost neospravedlňuje více vrstev, zůstávám u jednoduššího Controller → Service → Doctrine řešení.