RSSAmplifier

Blog

Eloquent Architecture

I write about my own first-hand experiences and observations on system design and software architectures.

eloquentarchitecture.comRSS feed ↗10 posts

Latest posts

The Custom Tenant Code Nightmare (And How to Wake Up)

You're three months into a new job when someone mentions "we have a dozen different branches for our customers." Learn how to escape the custom code nightmare with four proven patterns that actually scale, plus real Laravel examples.

Command Input Validation, The Laravel Way

Deconstruct the Magic

Whenever something feels like magic, it means I don't fully understand it. To truly grasp and improve things, I must go beyond the surface and examine the underlying machinery.

Modern JavaScript is Changing

There is a surge of modern JavaScript libraries whose whole goal is to deal with HTML instead of JSON. Apparently, this makes the whole development process simpler and much more productive.

Solving PHP Scaling Issues

We have an export feature that can build an Excel file over the course of many background jobs. Worked beautifully for years. Man, those were the days.

Locality of Behavior on its own isn't enough

The LoB principle dictates that the behavior of a unit of code should be as obvious as possible by looking only at that unit of code. But I think something is missing from this discussion.

Dashboard Date Comparisons

Dashboards like Stripe's, let you see values compared to a previous time period. Let's take a quick look at how we might begin to integrate this kind of functionality into your Laravel app's dashboard.

SDKs, The Laravel Way: Part II

With some of the basics from part I out of the way, now we can move on to extended topics like pagination, relationships, rate limiting, etc.

SDKs, The Laravel Way

Each call to the builder will modify the underlying pending request. Every modification, another link in the chain, that will be sent, finally, with get().

Scraping Paginated APIs with Queues

Easily scalable with multiple queue workers. Jobs can be rate limited. Failures can be retried.