Race weekscene 16 / 26~2 min

Monolith and microservices

The thick-markered box, and the argument both sides won.

The thick-markered box is the 2014 Ruby application, and its presence on the wall makes Traversal a museum of the great architecture argument, both exhibits still running.

The old application is a Concept · lights on your mapmonolithA single application holding most of the backend: one codebase, built and deployed as one unit, its internal parts calling each other as ordinary functions. Simple to build and reason about, and the starting shape of most successful products.: one application, one codebase, one deployment, everything calling everything as ordinary functions. The word gets said with a curled lip, and the curl is unearned. The monolith is why Traversal exists: five people built it in eleven weeks precisely by not operating a fleet. Nearly every product you love started as one, and the ones that say otherwise are usually lying in their conference talks.

The newer boxes, registration, results, projection, are Concept · lights on your mapmicroservicesAn architecture dividing the backend into smaller services, each with its own codebase, deployment, and often its own data, talking through internal APIs. It buys independent releases, scaling, and ownership, priced in distributed complexity.: smaller services, separately deployed, separately owned, talking through the internal APIs of Act I. The purchase is independence. Results can scale twentyfold on Sunday without the organizer portal noticing; Finn’s team ships without Sam’s calendar; each box has one owner and one pager.

The price on the sticker

The price is that many boxes on many machines make a Concept · lights on your mapdistributed systemA system whose parts run on different machines and cooperate over a network. Parts fail independently, messages can be delayed or duplicated, and two parts can briefly disagree about the truth: the source of the field’s genuinely hard problems., and a distributed system is where this story’s hardest facts have all come from. Parts fail separately. Messages arrive late, twice, or never. Two components can disagree about the truth, briefly and honestly, which is 6:04 generalised into a law of physics. The monolith never had these problems. It had different ones, and could not scale its way out of them, and that is the whole argument in two sentences.

Traversal’s answer is undramatic: the new services carry race day, the monolith keeps the oldest screens, migration proceeds at the speed of confidence, and nobody rewrites everything in a heroic winter. Boring, correct, and paid for monthly, like all debt. Next: the machinery between the boxes, starting with the queue this story has owed you since the ADR.

End of scene

This scene covers: monolith, microservices, distributed system

Now, or later

Reading the whiteboard