The Daily
A note a day on APIs and the realities of shipping web applications. Stuff I've actually learned across 25 years of doing the work.
MariaDB thread pools: what max_connections can't save you from
Raising max_connections feels like the right fix for connection exhaustion. It isn't. Here's what actually works under burst traffic.
Raising is the first thing everyone does when MariaDB starts rejecting connections under load. It's also mostly wrong, and I've watched it make things worse on more than one client server. The real fix is the thread pool, and understanding why changes how you think about database capacity entirely. The situation that…
Read the daily →Twilio Status Callbacks: What 'delivered' Actually Means
Twilio will tell you a message was delivered. That doesn't mean anyone read it. Here's how I build a real audit trail in Laravel.
Twilio's message status callbacks look simple until a client asks you to prove that a patient received their appointment reminder and you realize 'delivered' just means the carrier accepted the message, not that any human saw it. I learned this distinction the hard way on a healthcare project, and it changed how I…
Read the daily →Laravel Horizon: Size Workers by Memory, Not Queue Depth
Most teams tune Horizon by tweaking numProcesses and call it done. The pmset memory config is where the real sizing lives, and almost nobody touches it.
Most teams ship Horizon with the default config, bump when queues back up, and consider the job done. That worked fine until I had a queue worker OOM-kill itself mid-job and corrupt a batch of records for a healthcare client. That's when I started actually reading what in the supervisor config does — and realized I'd…
Read the daily →GitHub Actions Secrets Are Not Enough for Multi-Env CI
Environment-scoped secrets in GitHub Actions feel like the answer until you actually run multi-environment CI at scale. Here's what bites you.
I spent two days last spring untangling a secrets mess on a project that had grown from one environment to four. Everything looked correct in the GitHub UI. The deployments were failing in ways that made no sense until I realized we had three different values for the same secret name living in three different scopes…
Read the daily →Make.com Is Great Until You Need It to Think
I use Make.com for real work. I also know exactly where it stops being a tool and starts being a liability. That line is sharper than most people draw it.
I've built probably thirty Make.com scenarios in the last two years. I've also ripped three of them out and replaced them with Laravel webhook listeners because they got too clever. The boundary between "great use of Make" and "you're going to regret this" is real, and most people cross it without noticing. What…
Read the daily →