Learning Resources
The modular monolith, in four steps
The architecture our src/Domain/ layout is built on — from avosalmon's Laracon Online Winter '22 talk. Follow them in order.
Watch the talk
The clearest explanation of the idea our src/Domain/ layout is built on: split a single Laravel app into modules with explicit boundaries, instead of letting every class reach into every other.
Modularising the Monolith — Laracon Online Winter '22
Ryuta Hamasaki (avosalmon)
Skim the slides
Prefer to scan rather than watch? The deck covers the same ground — why a monolith drifts into a big ball of mud, and how module boundaries and dependency rules hold it together.
The talk deck, on Speaker Deck.
Explore the sample app
A small, runnable Laravel app split into modules with enforced boundaries — the directory shape and boundary checks in a project small enough to read end to end.
The companion repository for the talk.
Apply it to WINCH
Now map it onto our codebase. The talk's "modules with boundaries" is exactly our DDD layout — domains talk to each other through Contracts, never by reaching into another domain's internals.
How the codebase splits business logic from HTTP, and what lives in each part of a domain.
The rule for crossing domains — Contracts across, Actions within, Models never.
Domain-Driven Design
Where the vocabulary in our DDD chapters — bounded contexts, ubiquitous language, aggregates — comes from.
Domain Driven Design بالعربي — Tech Podcast
with Hassan Shaddad & Ahmed Elemam
Becoming a software architect
The mindset shift behind those boundary decisions — from shipping the next feature to designing the system around it.
From a developer to software architect بالعربي — Tech Podcast
with Sameh Deabes & Ahmed Elemam
::video-embed or a ::resource-card with a one-line note on what it covers and which chapter it relates to. Keep the list short and curated; this is a shortlist, not a link dump.