From 100% CPU to 68%: How We Saved 1M Database Updates from Crashing
"Handling 1M database updates triggered by a dashboard button. We decoupled PHP's synchronous timeout using RabbitMQ and a batch-processing Go worker.…
Latest Architecture news from Tech News
"Handling 1M database updates triggered by a dashboard button. We decoupled PHP's synchronous timeout using RabbitMQ and a batch-processing Go worker.…
The Bottleneck of Traditional CRUD When you build a standard Laravel application, you typically follow the CRUD (Create, Read, Update, Delete) paradig…
Laravel is a popular PHP framework with routing, authentication, and database management built in. This guide deploys a Laravel app behind Nginx on Ub…
A few weeks ago I wrote about the WordPress Abilities API — what it is, why WordPress 6.9 shipped it, and what it means for how plugins will talk to e…
I'm designing a database toolkit for PHP. Here's my architecture. What problems do you see? https://github.com/NoobGreggy/TalaDB
TL;DR Shared-database multi-tenancy = one database, every row tagged with tenant_id , a global scope that filters automatically. Three moving parts: a…
TL;DR Shipped a SEO + analytics baseline in Kickoff : meta/OG, canonical, JSON-LD org schema, dynamic robots.txt , sitemap, and admin-editable GA4/GTM…
Notes from January 2026, when giving an AI agent live database access still felt reckless. Written for engineers who are about to do this, and for the…
Shopware 6 is a modern, API-first e-commerce platform built on Symfony and Vue.js. If you're coming from Shopware 5 or another platform, the architect…
The SaaS Scaling Challenge When building B2B SaaS applications, you inevitably hit the "Tenancy" crossroad. You have hundreds of companies using your …
The W series has covered what to check before a major upgrade , when to apply it , and what can go wrong . This fourth part covers the remaining quest…
The projects I dread are the ones where the database is the only documentation. Twenty tables, foreign keys, years of production data, and either no A…
The Problem with Traditional State Most Laravel applications rely on standard CRUD (Create, Read, Update, Delete) architecture. When a user changes th…
Technical books have a shelf life that nobody prints on the cover. A cookbook from 2018 still works. A history book from 2018 still works. A Laravel b…
Are you tired of wrestling with raw cURL requests, parsing Server-Sent Events (SSE) by hand, and building complex polling loops just to interact with …
Key Takeaways PHP 8.x is genuinely fast. JIT compilation brought real-world performance improvements that close the gap with languages that were previ…
It is time to bring opposites together, to stir up these stagnant waters, and to restore an industry that is dynamic from within, with multiple connec…
TL;DR Shipped an email broadcast feature: audience filter → suppression gate → one queued job per recipient → per-recipient status ledger. The whole d…
TL;DR Rewrote a bootstrap seeder so the deployment stack — DB engine, queue runner, PHP version — is config, not hardcoded. Renamed it away from a pha…
When a new video shows up in one of our regional crawlers, three things need to happen almost immediately: the SQLite FTS5 search index for that regio…
It all starts with a review question. I was reworking my notes on the Design Patterns book , the Gang of Four one, with examples that all came from th…
The problem: chat that can only talk The chatbot from earlier in this series can answer questions, but ask it "how many orders did we ship yesterday?"…
First published on the Accreditly blog . When someone finishes a course in your Laravel app they want proof: a certificate they can download, print an…
Hi my name is Perceval Hasselman and I'm and Building a simple WordPress website is one thing. Building a scalable platform with user accounts, custom…
TL;DR Fast-forwarded two Laravel apps off an old in-house skeleton — in layers, not one heroic merge. Added a security-header middleware and a retenti…
TL;DR A job dispatched once , at row-creation time, has a silent failure mode: if that dispatch is lost, the row sits pending forever — and never appe…
As our Laravel applications grow, we inevitably face a common architectural dilemma: where do we put complex business logic that dictates whether an e…
In modern Laravel applications, events and listeners are the glue that holds our complex business logic together. They allow us to decouple our code, …
The problem I've been working with Manticore Search for about two years at EricaPRO , building the search layer for two financial data platforms. For …
1. Hook & Problem Statement You’ve been there. You're building a Laravel application, and everything is going smoothly. You type Route::get('/orde…