Skip to content
José da Cruz

Enterprise Architect, and Life Thinker

José da Cruz

Enterprise Architect, and Life Thinker

architecture

The Tragedy of the Commons: Why Your Shared Staging Environment Always Breaks

josedacruz, September 2, 2026September 2, 2026

TL;DR: A shared staging environment breaks for the same reason an overgrazed field turns to dust: everyone benefits from using it a little carelessly, but nobody personally pays for the mess they leave behind. The fix isn’t asking people to be more responsible — it’s changing the setup so carelessness…

Continue Reading
architecture

Designing a Distributed Job Scheduler: Why “Just Use Cron” Doesn’t Scale

josedacruz, August 26, 2026August 26, 2026

TL;DR: A single cron job looks simple until the server it lives on goes down, and “just add a second cron server” quietly turns into a duplicate-execution bug. A real distributed job scheduler needs a shared source of truth for what’s due, a way for exactly one worker to claim…

Continue Reading
architecture

One-Way Doors vs Two-Way Doors: A Heuristic for How Much Analysis a Decision Deserves

josedacruz, August 23, 2026August 23, 2026

TL;DR: Not every decision deserves the same amount of debate. Some choices are easy to undo if you’re wrong, and some are almost impossible to take back. Sorting a decision into one of those two buckets before you argue about it tells you how much process it actually needs —…

Continue Reading
architecture

The Rule of Least Power: Why the Boring Technology Choice Usually Wins

josedacruz, August 19, 2026August 19, 2026

TL;DR: When you’re picking a tool, a database, or a way of solving a problem, the option with the most features and the most flexibility isn’t automatically the right choice. The Rule of Least Power says: pick the least powerful tool that still gets the job done, because less powerful…

Continue Reading
architecture

The Distributed Monolith: When Your Microservices Still Deploy as One App

josedacruz, August 18, 2026August 18, 2026

TL;DR: Splitting a monolith into microservices doesn’t automatically get you the benefits people promise — independent deploys, one team’s mistake not taking down everyone else, services that scale on their own. If your new services still call each other synchronously, share a database, or all have to deploy together, you’ve…

Continue Reading
architecture

Hyrum’s Law: Why Every Observable Behavior of Your API Becomes Someone’s Dependency

josedacruz, August 17, 2026August 17, 2026

TL;DR: Hyrum’s Law says that if enough people use your software, every observable behavior of it — not just the parts you documented and promised — will eventually become something someone depends on. That means “we never promised that” is not the same as “it’s safe to change.” This post…

Continue Reading
architecture

The Silent Veto: How One Skeptical Senior Engineer Can Kill Any Architecture Decision

josedacruz, August 15, 2026August 15, 2026

TL;DR: Architecture decisions don’t die because someone votes no. They die because one respected engineer looks skeptical, everyone else in the room reads that skepticism as risk, and the proposal quietly stops moving. This “silent veto” has no formal step and shows up on no org chart, but it’s often…

Continue Reading
architecture

Designing a Rate Limiter That Survives a Flash Sale: Token Bucket vs Sliding Window

josedacruz, August 13, 2026August 13, 2026

TL;DR: A simple “count requests per minute” rate limiter looks fine in testing but can let through double the traffic right at the boundary between two time windows — exactly when a flash sale or a bot swarm is most likely to hit you. Token bucket and sliding window algorithms…

Continue Reading
architecture

The Outbox Pattern: How to Publish Events Without Losing Them

josedacruz, August 12, 2026August 12, 2026

TL;DR: When a service needs to save something to its database and tell other services about it at the same time, doing those two things separately can silently lose data. The outbox pattern fixes this by writing the “I need to send this event” note into the same database transaction…

Continue Reading
architecture

The Bus Factor Test: A Quick Heuristic for Finding Your Team’s Hidden Single Points of Failure

josedacruz, August 11, 2026August 11, 2026

TL;DR: The “bus factor” is the number of people who could disappear from your team before a system stops working — and for most teams it’s uncomfortably close to one. Once you find a low bus factor, the real decision isn’t whether to fix it, it’s how: documentation works well…

Continue Reading
  • Previous
  • 1
  • 2
  • 3
  • 4
  • …
  • 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