Your claims-adjuster suite creates hosted browser sessions instantly, yet every tunnelled navigation crawls. What explains the split?
answer
- two paths, only one tunnelled
- commands direct, content relayed
- the cost is per request
- request count, not payload size
- a relay is also a funnel
basics
~20 sSession creation and your client's commands travel straight to the provider, while the page's own requests for internal names detour through the relay inside your network. Only that second path carries the extra hop, and it pays per request.
solid answer
~50 sA tunnelled run uses two separate paths, and only one of them is tunnelled. Your client's traffic — creating the session, sending commands, reading results — goes from your harness to the provider directly, so session creation feels normal. The page's own requests are different: when the rented browser fetches the claims-adjuster tool's document, its scripts, its stylesheets and every API call it makes, each of those crosses to the relay inside your network, is performed there, and comes back. The added round trip therefore lands **once per request**, not once per session, so the visible slowdown tracks how many requests a page makes rather than how many bytes it moves. A page assembled from many small assets is punished far harder than a single large download, and the relay is a process that all of it funnels through.
go deeper
Know that not everything in a hosted run goes through the tunnel. Commands from your harness reach the provider directly; the page's own requests for internal addresses are the ones that detour, and each of them pays for the detour.
Be able to explain why the overhead lands per request. Work through a page with many small assets versus one large one and say which suffers more, and why bytes are the wrong thing to count.
Expect a scenario where creation is fast and interaction is not. Separate the control path from the content path out loud, then distinguish a steady per-request offset from a relay under load, which shows as variance that grows with width.
Be ready to say what you would measure before committing a suite to this shape: which leg each budget covers, what the relay's capacity is, and what evidence would tell you a regression came from the path rather than the product.
## Two paths, and only one is tunnelled It is tempting to picture a tunnelled run as "everything goes through the tunnel". It does not. A hosted browser session has traffic moving on two distinct paths, and confusing them makes the timing profile look inexplicable. - **The control path.** Your harness talks to the provider's remote endpoint over the public internet: it creates the session, sends each command, and reads each result. The relay does not sit on that path, which is why session creation for an insurer's claims-adjuster suite can feel instant while the run that follows does not. - **The content path.** The rented browser, having been told to open an internal hostname, has to actually fetch it. Those requests are the ones carried to the relay inside your network, performed from there, and returned. Two different machines originate the traffic on these two paths — your harness on one, the provider's browser on the other — and they are billed, routed and slowed independently. Which of the browser's requests take the relay path and which do not is decided by the routing arrangement rather than by the relay itself; the point here is simply that the two paths exist and are not the same path. ## Why the cost multiplies per request A single page is rarely a single request. The document arrives, and then the browser discovers stylesheets, scripts, fonts, images, and then the application starts issuing its own calls for claim records, adjuster lookups and reference data. Every one of those that travels the content path pays the same added journey: provider network to relay, relay to internal service, and the whole way back. That produces a characteristic shape: 1. **The slowdown scales with request count, not payload size.** A page that pulls many small assets is hurt far more than one that pulls a single large file, because the added cost is per journey rather than per byte. 2. **Interaction feels worse than navigation.** A form in the claims-adjuster tool that validates a field against the server on every keystroke turns a single interaction into a burst of tunnelled journeys. 3. **The effect compounds with anything serialised.** Requests the application deliberately waits on — a token refresh before a data call, a redirect chain on login — stack their added journeys end to end instead of overlapping them. None of this is a defect in the relay. It is the arithmetic of putting an extra leg on a journey that was already being made many times. ## The relay is a funnel as well as a hop Latency is the part people predict. The part they do not is that a relay is a process, running on a machine, with finite capacity for concurrent work — and every tunnelled request from every live session converges on it. As a suite widens, that convergence, not the individual hop, often becomes the dominant effect. The signature differs from plain latency: - Plain latency is roughly constant per request and shows up even on a quiet run. - Funnel pressure appears only when sessions run in parallel, worsens as width increases, and shows as variance rather than a steady offset. The practical reading is that "we measured the tunnel overhead on a single run" does not predict what a wide run will experience, because the two effects have different causes. ## What this does to a suite's assumptions | assumption from a local run | what a tunnelled run does to it | |---|---| | a wait threshold tuned against the developer machine | now too tight, and fails on request-heavy pages first | | "the app is slow" as the reading of a timeout | ambiguous: the content path is on the timing, the control path is not | | timings comparable between runs | comparable only while the relay's host and load are comparable | Two adjustments follow, and they are cheap: - **Separate your budgets.** Time session creation apart from page interaction. A run where creation is flat and interaction has doubled is telling you which path changed. - **Prefer waits on application state over fixed durations.** A condition that waits for the claim record to appear survives a slower path; a fixed pause tuned against a direct run does not. ## The honest boundary of the claim Say what is observable and stop there. What a tenant can see is that requests taking the content path are slower and that the effect scales with their number. What a tenant cannot see, and should not assert, is how the provider's end of the connection is implemented, what it does with a request internally, or where the time is actually spent on the far side. The useful mental model is the path, not the internals: identify which leg a given piece of traffic travels, and the timing stops being mysterious.
- Why does widening the suite make the tunnel overhead worse than a single run predicted?Because two effects are in play. The per-request hop is roughly constant and visible even on a quiet run; the relay's own capacity is not, and every tunnelled request from every live session converges on that one process. Width turns a steady offset into variance, which is why a single-run measurement of overhead is not a forecast.
- A page in the claims-adjuster tool got slower after a front-end change that did not add bytes. How can that be?Because the added cost is per journey, not per byte. Splitting a bundle into many smaller assets, or replacing one data call with several, adds journeys that each pay the relay hop. The same change on a direct run would be nearly free, which is exactly why the regression only shows through the tunnel.
- Should you tune your timeouts up to absorb the tunnel hop?Raising a fixed timeout hides the symptom without telling you which path changed, and it slows every genuine failure down. Prefer waiting on application state, so a slower path is absorbed naturally, and keep session creation timed separately so that a shift in the control path stays distinguishable from a shift in the content path.
Your instructions to a courier in another city go straight down the phone, but every parcel has to come out through your own loading bay. Adding more items costs you at the bay, never on the phone.
saying these in an interview costs you the question
- Assumes all session traffic goes through the tunnel
- Expects the hop to cost once per session
- Thinks payload size drives the slowdown, not request count
- Ignores the relay's own capacity under parallel sessions
- Reads every tunnelled timeout as an application defect
- Treats a single-run overhead measurement as a forecast