InterviewKata
Architecture styles track · one app, built 15 ways

See every architecture style build the same app.

A monolith, microservices, an event-driven system and a dozen other styles, each used to build the same city bike-share service, Pedal: unlock a bike, ride, return it, pay. Every page draws the parts, walks one rental through them, runs real code in Python, TypeScript and Java, and gives you something to try. Because the app never changes, you can see exactly what each style buys and what it costs.

Start here → The style map Compare them side by side
The whole track is liveAll 16 pages are ready, with every program tested in three languages.

Why a separate track

The Software architecture track teaches how an architect thinks: characteristics, trade-offs, decisions, governance. This track is the catalogue that goes with it: one hands-on page per style, built around code you can run and change. Each page links to the matching Architecture module for the reasoning.

The style map

Compare them side by side

How each style builds Pedal. Read across a row for one style; read down a column to see the choices that differ.

StyleDeploys asParts talk byData livesPick it when
MonolithOne appFunction callsOne databaseOne team, a new product, or a domain still being discovered
LayeredOne appCalls down the stackOne database, behind the bottom layerMostly forms over data; a team that knows the pattern
HexagonalOne appPorts (interfaces) and adaptersBehind a portReal business rules that must outlive frameworks and vendors
Clean and onionOne appInward-pointing dependenciesOutermost ringLarge codebases where the rules need protecting from churn
MicrokernelCore + pluginsPlugin contractsCore, plus plugin-ownedMany variants on a stable core: per city, per customer, per product
Client-server and tiersClients + server tiersRequests and responsesThe data tierAlmost always, as the outer shape of the other styles
Service-based and SOAA handful of servicesCalls, sometimes a shared busOften one shared databaseClear domains, a few teams, no appetite for dozens of services
MicroservicesMany small servicesCalls and eventsOne store per serviceMany teams that must ship independently, uneven scaling
ServerlessFunctions on a platformEvents and HTTPManaged storesSpiky or low traffic, small team, glue between managed services
Event-drivenProducers + consumersEvents through a broker or logEach consumer's ownMany reactions to one fact, or work that can happen later
Pipes and filtersA chain of stepsData passed alongFlowing throughBatch or stream processing, ETL, report building
BrokerClients, a broker, serversRequests via the brokerEach server's ownCallers shouldn't know where or how many servers there are
Space-basedProcessing units + data gridReplicated memoryIn memory, written behindExtreme, spiky load on hot data (a city-wide ride surge)
Peer-to-peerEqual peersPeers directlySpread across peersNo central party can or should be trusted or paid for
Cell-basedMany copies of the whole systemA thin router in frontPer cellA failure must never reach more than a slice of customers

The 4-week roadmap

About 40 minutes a day. Before reading a page, sketch Pedal in that style yourself for ten minutes, then compare.

WeekStudyOutput by Friday

Where to go next

Start here →

Pedal, the words every page uses, and how to read a style page.

Software architecture →

How architects choose, record and evolve these decisions.

Low-level design →

The class-level design inside each of these boxes.