Learn
Lesson · Scaling Laws and Cost · What a shape costs

Vertical vs Horizontal

Buying N small nodes costs N times a node and delivers less than N nodes’ worth, because they coordinate. Buying one large machine costs a premium that grows faster than the size does, and you can only buy the rungs that exist. Neither is always cheaper, and the crossing is found by evaluating both.

horizontal N nodes deliver N/(1 + α(N − 1)) nodes’ worth α = 1/200 5× a node needs 6 nodes, not 5 $600.00 a month vertical each doubling of size multiplies price by 2.2 rung 3 = 8× a node = $1 064.80 you round up to a rung crossings horizontal first wins at 3× and loses again at 4× from 5× on it never loses again fleet ceiling 1/α = 200×
A straight line against a staircase, and two crossings

Core ideas

What this lesson establishes

Three things make this harder than dividing one price by another: coordination, the rung, and the fact that a staircase can cross a line more than once.

1

N nodes deliver less than N nodes

The same contention term as “The Universal Scalability Law”, with β = 0: N nodes deliver N/(1 + α(N − 1)) nodes’ worth. At α = 1/200, reaching five times a node takes six nodes, not five, and reaching sixty-four times takes ninety-four. The penalty is invisible at small N and enormous at large N, and it also caps the fleet at 1/α = 200× however many nodes are bought.

2

Vertical is a staircase, and you round up to a rung

Machine sizes come in discrete steps, so a target of five times a node is served by the eight-times rung with three times a node left idle. That rounding is a real cost and it is why the vertical curve is a step function rather than a smooth one. Half a machine size is not for sale.

3

The premium is superlinear, so the staircase pulls away

Here each doubling of size multiplies the price by 2.2 rather than by 2, so eight times a node costs $1 064.80 where eight nodes would cost $800, and sixty-four times costs $11 337.99 against $9 400 for the nodes that deliver it. The gap widens with every rung, which is why large systems end up horizontal in the end.

The material

Two price curves, the coordination penalty, and the crossings

How each side is costed, why there are two crossings rather than one, and the thing the price comparison leaves out entirely.

Definition · The two plans

To reach a target capacity T, measured in multiples of one small node:

horizontal — buy the smallest N with N/(1 + α(N − 1)) ≥ T, at N · u where u is the price of a node;

vertical — buy the smallest rung of the size ladder that is at least T, at the ladder’s price for that rung.

Both are exact given α, u and the ladder. Neither is an approximation of the other.

The horizontal side is a straight line in the number of nodes and a curve in the capacity delivered, because of the coordination term. The vertical side is a staircase in both. Comparing a line to a staircase is what produces more than one crossing.

α = 1/200, node $100.00, ladder: ×2 size costs ×2.2 price target nodes (ideal) horizontal rung vertical cheaper 1× 1 (1) $100.00 2⁰ = 1× $100.00 vertical 2× 3 (2) $300.00 2¹ = 2× $220.00 vertical 3× 4 (3) $400.00 2² = 4× $484.00 horizontal 4× 5 (4) $500.00 2² = 4× $484.00 vertical 5× 6 (5) $600.00 2³ = 8× $1 064.80 horizontal 16× 18 (16) $1 800.00 2⁴ = 16× $2 342.56 horizontal 64× 94 (64) $9 400.00 2⁶ = 64× $11 337.99 horizontal

Why six nodes for five nodes’ worth

Solve the delivered-capacity condition rather than dividing. With α = 1/200, N nodes deliver 200N/(199 + N) nodes’ worth, so reaching 5× needs 200N ≥ 995 + 5N, that is N ≥ 995/195 = 5.10…, so N = 6. Five nodes deliver 4.90…, which is short. The sixth node is bought entirely to pay for the coordination of the first five.

Example · The penalty at scale

The same inequality at T = 64 gives N ≥ 12 736/136 = 93.6…, so ninety-four nodes. Thirty of them exist only to carry the overhead the other sixty-four create. And the ceiling is absolute: 200N/(199 + N) rises to 200 and no further, so a target of 250× cannot be met horizontally at this α by any number of nodes at all.

Two crossings, because a staircase is not a line

Horizontal first becomes cheaper at 3×, where four nodes at $400 beat the four-times rung at $484. At 4× it loses again: the same rung now serves the larger target at the same $484, while horizontal has had to buy a fifth node. From 5× on it never loses again.

The reason is the rung. A size you have just bought is cheap per unit of capacity until it is full, and it gets cheaper per unit as the target rises toward the top of it. Every rung repeats that pattern, so the vertical curve is a sawtooth against the horizontal line and the comparison can flip back. Reporting a single break-even hides this; the honest report is two numbers — where horizontal first wins, and where it stops losing.

Example · Buying at the wrong end of a rung

At a target of 5× the vertical plan buys the eight-times rung for $1 064.80 and leaves three nodes’ worth idle: $600 of horizontal capacity would have done. At a target of 8× the same rung costs the same $1 064.80 and is full, while horizontal now needs nine nodes at $900. The rung is at its worst the moment after you are forced onto it and at its best the moment before you outgrow it.

What the prices do not say

One machine is one failure domain. The horizontal plan has a parallel path through it and the vertical plan does not, and that difference is a probability rather than a price — it is computed in “Parallel: Redundancy” on “Availability and Failure”, where two independent components at 99.9% compose to 99.9999% and one component at 99.9% composes to 99.9%. This page does not repeat that arithmetic; it names the gap, because a cost comparison that omits it will pick the single box every time it is close.

There is a second omission worth stating. The vertical plan has no coordination term because there is nothing to coordinate, which is genuinely an advantage: the single box delivers its nameplate. The comparison above already credits it with that — the rung is compared against delivered capacity, not against node count — and it is still the more expensive side from 5× on.

Interactive

Vertical vs horizontal

Coordination on one side, a price premium on the other

Vertical against horizontala ladder that prices doublings against a fleet that coordinates
N small machinesone big machinefirst crossingand past here horizontal never loses

Method

Costing a target capacity both ways

Delivered capacity first on both sides, so that the two prices are for the same thing.

1

Convert the target into delivered capacity, not nameplate

Horizontal: solve N/(1 + α(N − 1)) ≥ T for the smallest integer N. Vertical: take the smallest rung at or above T. Doing this first is what stops the comparison being between six nodes and five nodes’ worth of box.

2

Price each side at that size

N · u on one side, the ladder’s entry on the other. Keep the idle capacity visible on the vertical side: $1 064.80 for a target of 5× is buying 8×, and the reader should be able to see that.

3

Evaluate across a range of targets, not at your target alone

One target gives one verdict and no idea how stable it is. A column of targets shows the staircase and shows the verdict flipping, which is the thing that a single row cannot tell you.

4

Report both crossings

The first target at which horizontal wins, and the target past which it never loses again. Here those are 3× and 5×, and the gap between them is precisely the price of being forced onto the next rung.

5

Name the failure domain before you conclude

The single box has no parallel path. That is not in either price, it is a separate calculation, and it belongs in the recommendation rather than in a footnote to it.

Nodes, rungs and crossings

Score 0 / 0

A target of 5× a node: $600 of nodes against a $1 064.80 rung

The node count is solved as an inequality rather than divided out, which is where the sixth node comes from.

α = 1/200 node price u = $100.00 a month ladder 2× the size costs 2.2× the price, from $100.00 horizontal, delivered capacity of N nodes: N/(1 + (N − 1)/200) = 200N/(199 + N) want ≥ 5: 200N ≥ 995 + 5N ⟹ 195N ≥ 995 ⟹ N ≥ 5.102… so N = 6 check N = 5: 1000/204 = 4.90…× short N = 6: 1200/205 = 5.85…× clears it cost 6 × $100.00 = $600.00 vertical, rungs: 1× $100.00 2× $220.00 4× $484.00 8× $1 064.80 smallest rung ≥ 5× is 8× cost $1 064.80 idle 3× a node, paid for verdict at 5× horizontal, by $464.80 a month and at 4×: 5 nodes = $500.00 against the same 4× rung at $484.00 vertical wins — the second crossing

The N ≥ 5.102… line is where the coordination penalty becomes a purchase. It is a fraction of a node that cannot be bought, so it becomes a whole node, and at this target that single rounding is a sixth of the horizontal bill.

The last block is the part that a single-crossing answer would have hidden. At 4× the vertical plan is cheaper and at 5× it is not, because the four-times rung serves 4× exactly and cannot serve 5× at all. That is why the lab reports where horizontal first wins and where it stops losing, rather than one break-even.

For a faded attempt, change the ladder so a doubling costs 1.6× rather than 2.2×, keeping α and the node price. Predict before computing whether the two crossings move up or down, then find them both in the lab and say which targets changed verdict.

Common mistakes

1
Dividing the target by a node’s capacity5 × 500 rps does not mean five nodes, because five nodes do not deliver five nodes’ worth. The condition to solve is N/(1 + α(N − 1)) ≥ T, which gives six here and ninety-four at a target of 64×. Dividing understates the fleet at every size and understates it badly at large ones.
2
Reporting one break-even when the curve crosses twice“Horizontal wins above 3×” is false at 4×, where the same rung serves a larger target at the same price. Two numbers are needed: where horizontal first wins and where it stops losing. The gap between them is exactly the cost of being pushed onto the next rung early.
3
Comparing a rung’s nameplate against a fleet’s node countThe single box delivers what it says; a fleet does not. Comparing 8× of box against 8 nodes credits the fleet with capacity it will not produce — eight nodes deliver 7.73…× here. Both sides have to be converted to delivered capacity before the prices are put next to each other.

Check your understanding

✓
Finish when a machine-shape decision arrives with both crossings and a named failure domain.

You should be able to solve N/(1 + α(N − 1)) ≥ T for the node count, price both plans across a column of targets, report where horizontal first wins and where it stops losing, and say what the two prices do not contain.

Note: Both shapes so far were bought for a target capacity, and the target was treated as a single number. It is not: load has a shape over the day, capacity is bought for the top of that shape, and the difference between the top and the average is paid for every hour. “Utilisation and Waste” puts a fraction on that gap, and the fraction is larger than most people guess.

Kept in this browser only, for you. Nothing is sent anywhere and nothing checks it. Carry it to another device.

Feedback and recommendations

Something to change about this lesson? Write it down, tick it off when it is handled, and export the list when you want to act on it. Kept in this browser only: nothing is sent anywhere, and nobody is notified.

No recommendations yet for this lesson.