DevOpsInterviews logo

Google NALSD: a worked SRE design example

Work through Google’s Non-Abstract Large System Design method: size a 5 PB recovery, compare bandwidth limits and test a revised four-hour plan.

5 MIN READ · UPDATED 8 OCTOBER 2026

What NALSD is

Google's SRE Workbook describes Non-Abstract Large System Design as a method for turning requirements into a concrete resource plan. It combines design iteration with capacity estimates and failure analysis.

Use the method to practise infrastructure design. The published chapter does not establish a universal interview stage, duration or scoring rubric; ask the recruiter what your own round covers.

Establish the assumptions

For this editorial exercise, assume a platform has five decimal petabytes of data, all of which must be available within a four-hour recovery time objective. The only restore path is one dedicated 10Gbps link. No data is already at the recovery site.

Clarify the acceptable recovery point, whether all data is on the critical path and whether additional links or a smaller working set are possible. These answers can change the design before detailed sizing.

A worked recovery example

Five petabytes is 5,000,000 gigabytes using decimal units. A 10Gbps link carries at most 1.25GB/s, so transfer alone takes 5,000,000 / 1.25 = 4,000,000 seconds, about 46.3 days. At 100Gbps it is about 4.63 days. Both ignore protocol overhead and storage bottlenecks.

To move all five petabytes in four hours would require about 347GB/s, or 2.78Tbps of sustained payload bandwidth, before overhead. That rules out the stated single-link restore plan. It does not prove that every network-based recovery design is impossible.

One alternative is to keep a replica at the recovery site and rehearse promotion. Another is to recover a critical subset first, if the service objective permits it. Specify how replication lag is measured and what data loss the recovery point permits.

A standby requires storage and operating capacity. Do not assume an exact doubling of the bill: redundancy, compression, storage class and compute readiness change cost. Retain independent recovery points because logical corruption can propagate to a replica.

Ideal transfer lower bounds for 5 decimal PB; no overhead or storage bottleneck.
Restore pathPayload rateMinimum transfer time
One 10 Gbit/s link1.25 GB/s46.3 days
One 100 Gbit/s link12.5 GB/s4.63 days
Required for four hours347.2 GB/s2.78 Tbit/s before overhead

Revise the working set, then check the whole recovery

Suppose the product owner allows the most recent 2 TB to come back first. At a measured 70 percent of a 10 Gbit/s link, payload throughput is 0.875 GB/s. Transferring 2,000 GB takes about 2,286 seconds, or 38.1 minutes. This smaller transfer can fit inside four hours; the original 5 PB transfer cannot.

That result is only the network portion of recovery. If provisioning takes 25 minutes before transfer and validation takes 40 minutes afterward, the serial path is about 103 minutes. These timings and the 70 percent figure are exercise assumptions, not Google benchmarks. Check which steps can overlap and which share a bottleneck.

The reduced working set must still satisfy the service promise. Explain how requests for older data behave, when the rest becomes available, and how you prevent inconsistent reads during catch-up. A faster restore that loses required records has not met the recovery objective.

Use measured reference values

Keep a small capacity worksheet for the hardware and services in your design. Distinguish bits from bytes, decimal from binary units, random from sequential IO and throughput from latency.

Drive specifications and network benchmarks need their workload conditions. A single memorized IOPS number cannot size an entire storage system. Use rough bounds to eliminate unsuitable options, then validate the promising design.

Practise revising the design

Take a system you know and change one constraint: remove a region, multiply traffic or reduce the budget. State an initial estimate, explain its assumptions and identify the next measurement you would need.

When a number is wrong, correct it and revisit the decisions that used it. The purpose of this practice is to make assumptions and consequences visible to the person reviewing your design.

Sources and further reading

PRACTISE THIS

Now go and use it. The question topics this article feeds into:

Practise the next design problem

Work through the existing system-design questions, state your capacity assumptions, then compare your reasoning with the answer. A free account lets you bookmark a question and record your progress.

FAQ

What does NALSD stand for?▲

NALSD stands for Non-Abstract Large System Design. Google’s SRE Workbook uses the term for a design method that makes requirements, resource estimates and failure assumptions concrete. This guide applies it to an original recovery exercise.

Is NALSD only used at Google?▼
How long is the NALSD round?▼
Do I need to be exact with the numbers?▼
What if I get the arithmetic wrong mid-round?▼