Visitor action
You click the button.
A small demo of how this site is wired. One click crosses the UI, API boundary, persistence layer, realtime broadcast, and live state so the moving parts are visible instead of only described.
You click the button.
The component calls a typed service and updates UI state.
A minimal endpoint receives the action and validates the flow.
The event is saved so the counter survives restarts.
The backend pushes the new state to every connected browser.
Every visitor sees the system react without refreshing.
The runtime path tells you where a request goes. Architecture tells you how the responsibilities around that request are organised.
The same application action can travel through very different structures depending on how responsibilities and dependencies are organised. Pick an architecture and follow the request.
These are different ways to structure an application, not a ranking.
Scenario: a user submits a request to book a call.
Triggers the application action
e.g. clicks “Booking”
Receives the HTTP request
e.g. receives the Booking request
Coordinates business behaviour
e.g. validates and processes the Booking
Handles persistence access
e.g. creates the Booking record
Stores application state
e.g. creation of the Booking row
Responsibilities are grouped into horizontal layers, with each layer handling a specific technical concern.
The application is straightforward and the dependency graph remains simple.
As the application grows, layers can become tightly coupled and business flows may spread across several technical layers.
If your codebase needs clearer boundaries, a new application flow, or work across frontend and backend, tell me what you’re working on.