<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Devmayor technical writing</title><description>Technical essays about backend systems and production engineering.</description><link>https://devmayor.dev/</link><item><title>Rebuilding the whole request end to end</title><link>https://devmayor.dev/blog/rebuilding-request-end-to-end/</link><guid isPermaLink="true">https://devmayor.dev/blog/rebuilding-request-end-to-end/</guid><description>We put the full request back together, from the browser and network to Node, PostgreSQL, payments, queues, and the final response.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>What changes when 10,000 users place orders at once?</title><link>https://devmayor.dev/blog/ten-thousand-users-place-orders/</link><guid isPermaLink="true">https://devmayor.dev/blog/ten-thousand-users-place-orders/</guid><description>A traffic spike fills queues, exhausts connection pools, hits hot rows, and turns careless retries into even more traffic.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The request took 1.8 seconds. Where did the time go?</title><link>https://devmayor.dev/blog/where-request-time-went/</link><guid isPermaLink="true">https://devmayor.dev/blog/where-request-time-went/</guid><description>The request took 1.8 seconds. Traces, metrics, and logs help us see how much time each part of the system used.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The payment provider takes four seconds. Should our request wait?</title><link>https://devmayor.dev/blog/payment-provider-four-seconds/</link><guid isPermaLink="true">https://devmayor.dev/blog/payment-provider-four-seconds/</guid><description>A four-second payment call forces us to choose: keep the request open, or return a pending order and finish the work in the background.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Two people try to buy the last item</title><link>https://devmayor.dev/blog/two-buyers-last-item/</link><guid isPermaLink="true">https://devmayor.dev/blog/two-buyers-last-item/</guid><description>Two buyers see one item in stock. We need one safe place to decide who gets it and stop the other order.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>How did PostgreSQL find one row among millions without scanning everything?</title><link>https://devmayor.dev/blog/postgresql-find-row-among-millions/</link><guid isPermaLink="true">https://devmayor.dev/blog/postgresql-find-row-among-millions/</guid><description>A B-tree index helps PostgreSQL narrow millions of rows to a few candidates, as long as the index actually matches the query.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The API needs your order. What happens inside PostgreSQL?</title><link>https://devmayor.dev/blog/inside-postgresql-order-query/</link><guid isPermaLink="true">https://devmayor.dev/blog/inside-postgresql-order-query/</guid><description>One line of SQL hides a connection pool, a query plan, memory pages, MVCC rules, storage work, and a result that still has to come back.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Node is single-threaded. So how is it handling thousands of requests?</title><link>https://devmayor.dev/blog/node-single-threaded-thousands-requests/</link><guid isPermaLink="true">https://devmayor.dev/blog/node-single-threaded-thousands-requests/</guid><description>Node handles many requests by keeping the JavaScript thread free while the operating system and supporting workers handle most of the waiting.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>What actually happens when Node receives the request?</title><link>https://devmayor.dev/blog/what-node-does-with-request/</link><guid isPermaLink="true">https://devmayor.dev/blog/what-node-does-with-request/</guid><description>Your controller is near the end of the path. The operating system, Node&apos;s HTTP parser, middleware, and router all see the request first.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Your request reached us. Which server gets it?</title><link>https://devmayor.dev/blog/which-server-gets-request/</link><guid isPermaLink="true">https://devmayor.dev/blog/which-server-gets-request/</guid><description>The public endpoint is the front door. Load balancers, proxies, health checks, and routing rules still have to choose an application server.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Why HTTPS needs work before your request even starts</title><link>https://devmayor.dev/blog/https-before-request-starts/</link><guid isPermaLink="true">https://devmayor.dev/blog/https-before-request-starts/</guid><description>Before the browser sends a secure request, it has to verify the server, agree on keys, and work out which connection it can reuse.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>You clicked Place Order. What happens before my backend sees it?</title><link>https://devmayor.dev/blog/place-order-before-backend/</link><guid isPermaLink="true">https://devmayor.dev/blog/place-order-before-backend/</guid><description>Before your backend can process an order, the browser has to find the service, open a connection, secure it, and get through the edge.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item></channel></rss>