Articles: Architecture
Technical writings, opinionated architectures, and development guides focusing on Architecture.
Nobody Wants To Touch That Model
Every Laravel codebase has a model people route around. Counting its lines is the least useful thing you can do to it, and extracting traits is how the count gets hidden rather than fixed.
The Interface With One Implementation
You added it so the thing could be swapped out later. Later arrived and nothing was. Counting implementations is the wrong test, and where the interface lives tells you far more.
The Job And The Controller Disagree
The same operation runs from two entry points and they have quietly drifted. In Laravel that drift has a predictable shape, because validation lives at the edge and only one edge has it.
The Rewrite You Should Not Do
You have run the diagnostics and you have a list. Now price the three options honestly, including the one where you do nothing, which is right more often than the other two put together.
Your Test Suite Is an Architecture Report
A slow Laravel test suite gets treated as a tooling problem. It is usually a coupling measurement, and the number worth watching is not how long the suite takes.
Queues you can pause and buckets you can walk away from
Two weeks of Laravel 13: a read-through filesystem driver for zero-downtime storage migrations, a global queue pause switch, debounced listeners, and Redis cluster fixes worth upgrading for.
Seven Days in Ten Milliseconds
A workflow that sleeps for three days is not a workflow you can test by waiting. Owning the clock, asserting on absence, and the races you only get one shot at.
Building an order fulfilment workflow in Laravel
Build a real order fulfilment workflow in Laravel: signals from webhooks, timeouts, retries, branching, sleep and saga compensation, one step at a time.
Strangling Procedural Legacy PHP into Laravel
Replace a procedural PHP monolith with Laravel one route at a time. Nginx ingress, session bridging that actually works, and Eloquent on a legacy schema.
The Art Of Keeping Business Logic Honest
Use state machines and workflow engines in Laravel to keep business rules explicit, auditable, and resilient across async processes.
Implementing the Saga Pattern in a Laravel Monolith
Learn how to implement the Saga pattern in Laravel to coordinate external APIs, recover from failures, and keep data consistent.
Why your Laravel controllers should be almost empty
Controllers are a transport layer, not a home for business logic. How I keep Laravel controllers down to a handful of lines using Form Requests, payloads, and Action classes.