Two services call each other over HTTP, and a teammate creates a brand-new `HttpClient` on every single outbound call 'to keep things simple.' Why is that a real performance problem, and what is actually happening on the wire before the first byte of an HTTP request is even sent?
HTTP is text sent over a connection, and opening a connection isn't free — before a single HTTP byte moves, the client and server complete a TCP handshake (three separate messages back and forth), and over HTTPS a TLS handshake on top of that (agreeing an encryption method, exchanging keys — another round trip or two). That's real, measurable latency paid before the actual request even starts, and it happens again for every single call if the client opens a fresh connection each time instead of reusing one. A new HttpClient per call often means a new connection per call, which means paying that handshake cost on the critical path of every request — the same mistake as opening a new database connection for every query instead of pooling them.