Managing Dependencies in Application Modules: What Works for Your Users

How should modules manage their external dependencies? The answer isn’t purely technical - it depends on who’s installing them. This post explores the real-world trade-offs between Composer-managed, developer-friendly modules and self-contained, user-friendly packages.

December 16, 2025 · 6 min

The Skipped Version Problem: How To Handle Module Updates

Updating modules sounds simple - until users skip versions. Suddenly migrations break, tables are missing, and update logic becomes a headache. See how a lightweight UpdateManifest can turn chaotic upgrades into a predictable, controlled process.

December 8, 2025 · 5 min

Deferred Writes: Performance Optimization and Database Gotchas

A look behind the scenes of implementing deferred writes in the CodeIgniter 4 Settings package: how batching write operations improves performance, and the subtle database portability issue caused by NULL values in unique constraints.

November 30, 2025 · 7 min

Building a Production-Ready File Handler for CodeIgniter 4 Settings

While CodeIgniter 4 Settings includes a database-backed handler, I wanted a file-based option that’s lightweight, fast, and safe for production use. I’ll walk through the challenges of handling concurrency, file locking, and caching, and explain the design choices behind the new FileHandler.

October 29, 2025 · 7 min

Dead Letter Exchanges in RabbitMQ

Many people think Dead Letter Exchanges can handle only failures. In reality, they’re perfect for scheduling messages and delayed job processing. Let’s see how we can do it.

September 15, 2025 · 7 min