Architecture

Once by the book.
Once across a whole system.

Move from a diagram to the consequences of a decision. See where responsibilities live in a UI and on a server, how the two talk, how the system fails, and how you would know a change was worth making.

Starting with TypeScript, Go, and Python Go is the default comparison. Python is also available.

Different decisions can fit together. An architecture can use several of these ideas at once.

48 articles

Ready articles Showing lessons that are ready to explore. Choose Drafting articles for works in progress, or All topics for the full catalog.

Client and server

The model every web application starts from, and the choices about how much the client knows.

Failure and evidence

Expect each part to fail in specific ways, decide what success means, and measure before and after a change.

Decompose a system

Find the lines a system should split along, and recognize when a line is in the wrong place.

Organize an application

Where responsibilities live inside one application, on a server or in a UI, and which parts may know about which.

Frontend applications

How a UI splits state, data, and rendering, and who owns each.

From modular monolith to services

Build one deployment so a module could become a service later, and know when that move has earned its cost.

Events, queues, and workflows

Work that happens later, elsewhere, or across several systems.

Data

How a backend records change, answers questions, and keeps customers apart.

Deploy and evolve

Choose where the code runs, and move a live system to a new shape without stopping it.