Skip to content
José da Cruz

Enterprise Architect, and Life Thinker

José da Cruz

Enterprise Architect, and Life Thinker

architecture

Essential Reading: Normal Accidents — Why Complex, Tightly Coupled Systems Fail by Design

josedacruz, September 18, 2026September 18, 2026

TL;DR: Charles Perrow’s Normal Accidents argues that in sufficiently complex, tightly-connected systems, catastrophic failures aren’t rare flukes caused by bad luck or careless operators — they are a structural inevitability the system was built to eventually produce. For anyone running distributed systems, that reframes “we had an outage” from a…

Continue Reading
architecture

The Cache Stampede: How One Expired Key Can Take Down Your Database

josedacruz, September 18, 2026September 18, 2026

TL;DR: A cache stampede happens when a popular cached value expires and a flood of requests all miss the cache at the same instant, sending them straight to your database all at once. It is one of the few bugs that gets worse the more successful your caching strategy is….

Continue Reading
architecture

The Dead Letter Queue Pattern: Why Nobody Ever Looks Inside It

josedacruz, September 18, 2026September 18, 2026

TL;DR: A dead letter queue (DLQ) is just a holding pen for messages your system tried to process and failed. It’s not a fix by itself — it just moves the failure somewhere quieter. Whether you actually need one depends on how much it costs you to lose a message…

Continue Reading
architecture

Brooks’s Law: Why Adding Developers to a Late Project Makes It Later

josedacruz, September 17, 2026September 17, 2026

TL;DR: Fred Brooks’s famous rule says that adding people to a late software project usually makes it later, not sooner. New hires need time and attention from the very people already doing the work, and every extra person adds more communication paths to manage. If a project is behind, cutting…

Continue Reading
architecture

Top 10 Trending GitHub Repos This Week (September 9 – September 15, 2026)

josedacruz, September 17, 2026September 17, 2026

TL;DR: This week’s trending list is dominated by AI-agent tooling — skills, harnesses, and CLI utilities built specifically to make Claude Code, Codex, Cursor, and similar coding agents faster, less wasteful, and less prone to over-engineering. Four of the ten repos are JavaScript-based, and several are direct responses to pain…

Continue Reading
architecture

Designing a Real-Time Leaderboard: Why Sorted Sets Beat a SQL ORDER BY at Scale

josedacruz, September 16, 2026September 16, 2026

TL;DR: A leaderboard looks like a simple feature — sort some scores, show the top N — but a plain SQL table falls over once you have millions of players updating scores in real time. The fix isn’t a bigger database, it’s a different data structure: a sorted set (like…

Continue Reading
architecture

The Saga Pattern: How to Undo a Transaction That Spans Five Services

josedacruz, September 16, 2026September 16, 2026

TL;DR: A saga is how you handle a “transaction” that spans multiple services, since you can’t wrap them all in one database commit. Instead of one atomic rollback, you run a chain of local steps and, if something downstream fails, you undo the earlier steps with separate “compensating” actions. It’s…

Continue Reading
architecture

Designing a Webhook Delivery System: Why Your Retries Need an Idempotency Key

josedacruz, September 13, 2026September 13, 2026

TL;DR: A webhook is just an HTTP POST your system sends to someone else’s server when something happens, but “just an HTTP POST” hides a lot of hard problems. Networks drop packets, receivers time out, and retries create duplicates — so a webhook delivery system that actually works needs retries…

Continue Reading
architecture

Designing a Distributed Counter: Why Global Counts Don’t Scale

josedacruz, September 10, 2026September 10, 2026

TL;DR: A single database row that stores a count (likes, views, votes) works fine until enough people hit it at once — then it becomes a bottleneck that slows down or breaks your whole app. The fix isn’t a bigger database, it’s splitting the count into several pieces that get…

Continue Reading
architecture

The Bikeshed Effect: Why Your Team Argues More Over the Logging Library Than the Database Schema

josedacruz, September 5, 2026September 5, 2026

TL;DR: Teams often spend more time debating small, easy-to-understand decisions (like which logging library to use) than big, complex ones (like a new database schema). This is called bikeshedding, and it happens because trivial topics are easy for everyone to have an opinion on, while complex ones are intimidating. The…

Continue Reading
  • Previous
  • 1
  • 2
  • 3
  • …
  • 25
  • Next
  • architecture (156)
  • artificial-intelligence (6)
  • books (2)
  • courses (4)
  • decision-frameworks (4)
  • finances (1)
  • java (8)
  • life-improvement (20)
  • metrics (3)
  • observability (2)
  • puzzles and challenges (3)
  • reviews (1)
  • security (8)
  • spring-boot (36)
  • Systems Thinking (3)
  • Essential Reading: Domain-Driven Design — Taming Complexity With a Shared Language
  • GitHub Weekly: 10 Rising Stars You Haven’t Heard Of Yet (October 5 – October 11, 2026)
  • GitHub Weekly: MCP Tools Trending Right Now (September 28 – October 4, 2026)
  • The Bulkhead Pattern: Why One Slow Dependency Shouldn’t Sink the Whole Ship
  • Essential Reading: A Philosophy of Software Design — Fighting Complexity One Module at a Time
©2026 José da Cruz | WordPress Theme by SuperbThemes