Components · Traffic and compute

Shard router (consistent hashing)

Sends each key to its shard; adding a shard moves only a slice of keys.

Lesson
Coming soon
Zone
app
Place it
4 cr on the blank canvas, free inside a problem

At a glance

Did you know
Consistent hashing puts keys and shards on a ring, so adding a shard moves only about 1/N of the keys.
Rule of thumb
Use virtual nodes so shards get even slices of the ring.
Watch out
A hot key still lands on one shard; rebalancing traffic.

Its settings in ScaleMySystems

What you can change on it in the lab, and what each number does.

Concurrency (slots)
Calls it can work on at once (per instance when autoscaling). Needed slots ≈ calls per second × seconds each takes. Extra calls wait in the queue, then are rejected.
Queue capacity
Calls allowed to wait for a free slot. A bigger queue absorbs bursts but adds waiting time; 0 rejects straight away.
vCPU
CPU cores available. Needed ≈ calls per second × CPU per request ÷ 1000. Above about 90% busy it slows down and may crash.
CPU per request (ms)
CPU time each call burns. Part of what the component is; make the code cheaper to lower it.
Latency (p50) (ms)
Typical time one call takes here, before any calls it makes itself. Slots are held for this long.
Latency (p99) (ms)
The slowest 1% of calls. Callers must set their timeout above this or they cut off healthy calls.

Full lesson coming soon

Lessons are being added one component at a time: how it works, its settings, a live exercise to break and fix it, interview questions and a short check. See the Circuit breaker lesson for what one looks like.