Blog - Konrad Kowalski (rootsher)
posts (112)
- The Layers of HTTP in the Browser: From fetch() to QUIC1/9
Request and Response: What Does the Browser Actually Send?
A request is not a URL, and an HTTP response is not always JSON. Headers and body have separate lifecycles, and an HTTP error is not a network failure.
- Testing Through Layers: From Code to Infrastructure5/9
E2E Tests and Visual Regression Tests: The Full User Path
An E2E test walks through the system the way a user does, while a visual regression test protects appearance. They are powerful but expensive, so they should…
- Deployment Strategies: Why They Exist3/6
Canary Deployment: The New Version Gets Part of the Traffic
Canary limits blast radius by using a small percentage of real traffic. Without metrics, it is only a slower rollout.
- series · 9 parts
The Layers of HTTP in the Browser: From fetch() to QUIC
Two lines of fetch() cover several layers: the browser API, HTTP semantics, the wire protocol and the transport. This series separates them so the Network…
- Frontend Rendering: from server-side pages to hybrid rendering16/17
Server Components: moving the execution boundary
The rendering boundary stops running through the page and starts running through the module graph. Some components never have a client-side implementation.
- Deployment Strategies: Why They Exist2/6
Blue-Green Deployment: Two Versions, One Traffic Path
Blue-green separates deploying from switching traffic. Rollback can be fast, but data does not move back with routing.
- Testing Through Layers: From Code to Infrastructure4/9
Contract Tests and API Tests: The Public System Agreement
A contract test protects the agreement between systems, while an API test checks the behavior of a public interface. Both matter where a change stops being…
- Realtime in the Browser: From Polling to WebTransport7/7
Polling, Streaming, SSE, WebSocket, or WebTransport?
The choice follows from the traffic model: freshness, direction, frequency, ordering and reliability. The simplest correct mechanism usually wins.
- Recovery from the Ground Up: Rollback, PITR, and Returning After Failure2/5
Rolling Back a Release: Code Is the Easy Part
Release rollback often looks like returning to the previous application image. In practice, the hard parts are data, migrations, and side effects that already…
- Deployment Strategies: Why They Exist1/6
Rolling Update: Replacing Pieces Gradually
Rolling update removes downtime during version replacement, but it only works safely when old and new versions can live together for a while.