Tasks
Configure the client. Be graded on the packets.
Every task hands you a client that is plausible and wrong, and a goal. The budget you are held to is not a number somebody chose — it is what a configuration that solves the task actually cost, measured by running it.
TCP: connections
Timeouts, retries and pools
- Make the budgetwarm-up6 min
Four requests against a healthy API on a 20 ms path. Every one has to come back inside the budget, and the client has to open no more connections than it needs.
- The origin is slower than you thoughtroutine8 min
The API takes two seconds to answer this route. The client gives up first and then retries, which does not help. Make the request succeed without letting it run forever.
- Retry without making it worseroutine10 min
The API is mid-deploy and answers 503 twice before it recovers. Get the request through — and do it in a way that a thousand other clients could do at the same time without knocking the API back over.
- The server told you when to come backroutine7 min
The API is shedding load and answering 429 with a `Retry-After`. The client is ignoring it and guessing. Make it listen.
- Do not charge them twicehard12 min
Three POSTs against an API that fails the first attempt. The client retries everything, which gets the requests through and delivers one of them to the origin twice. Fix it without giving up on retries.
- A pool that actually poolshard10 min
Six requests against an API that closes the connection after each response. Get them all through inside the budget, and leave nothing half-open behind.