<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Stackrig blog</title>
  <subtitle>Tech guides and explanations: servers, databases and the cloud. How things work and what they cost, with our own measurements and designs you can run.</subtitle>
  <link rel="self" type="application/atom+xml" href="https://stackrig.dev/blog/feed.xml" />
  <link rel="alternate" type="text/html" href="https://stackrig.dev/blog" />
  <id>https://stackrig.dev/blog</id>
  <updated>2026-10-02T00:00:00Z</updated>
  <author>
    <name>Stackrig</name>
    <uri>https://stackrig.dev/</uri>
  </author>
  <entry>
    <title>Why does fan-out make fast services slow?</title>
    <link rel="alternate" type="text/html" href="https://stackrig.dev/fan-out-tail-latency" />
    <id>https://stackrig.dev/fan-out-tail-latency</id>
    <published>2026-10-02T00:00:00Z</published>
    <updated>2026-10-02T00:00:00Z</updated>
    <summary>A request that waits for 100 parallel calls is as slow as the slowest of them: the arithmetic of Dean and Barroso's paper, and the same effect in a design you can run.</summary>
    <category term="explained" />
  </entry>
  <entry>
    <title>Why does p99 latency explode long before 100 % CPU?</title>
    <link rel="alternate" type="text/html" href="https://stackrig.dev/p99-latency-cpu-utilization" />
    <id>https://stackrig.dev/p99-latency-cpu-utilization</id>
    <published>2026-10-02T00:00:00Z</published>
    <updated>2026-10-02T00:00:00Z</updated>
    <summary>The queueing arithmetic for 1, 2 and 16 cores, what bursts do to it, our Postgres measurement, and the same curve in four designs you can open.</summary>
    <category term="explained" />
  </entry>
  <entry>
    <title>How many users can a $12 server handle? We measured it</title>
    <link rel="alternate" type="text/html" href="https://stackrig.dev/how-many-users-12-dollar-server" />
    <id>https://stackrig.dev/how-many-users-12-dollar-server</id>
    <published>2026-09-30T00:00:00Z</published>
    <updated>2026-09-30T00:00:00Z</updated>
    <summary>A $12-a-month VM with Nginx, Node.js and Postgres under virtual users: about 800 users at one second of think time, and a CPU throttle the guest does not show.</summary>
    <category term="measured" />
  </entry>
  <entry>
    <title>How many requests per second can one Postgres handle?</title>
    <link rel="alternate" type="text/html" href="https://stackrig.dev/postgres-requests-per-second" />
    <id>https://stackrig.dev/postgres-requests-per-second</id>
    <published>2026-09-30T00:00:00Z</published>
    <updated>2026-09-30T00:00:00Z</updated>
    <summary>One PostgreSQL on a 2-vCPU VM, measured: about 6,000 simple indexed reads per second at 100 % CPU, where p99 starts to climb, and how to estimate your own number.</summary>
    <category term="measured" />
  </entry>
  <entry>
    <title>How big should your database connection pool be?</title>
    <link rel="alternate" type="text/html" href="https://stackrig.dev/database-connection-pool-size" />
    <id>https://stackrig.dev/database-connection-pool-size</id>
    <published>2026-09-30T00:00:00Z</published>
    <updated>2026-09-30T00:00:00Z</updated>
    <summary>A pool of 4 against a pool of 16 connections on the same Postgres, measured, and Little's law for sizing your own.</summary>
    <category term="measured" />
  </entry>
  <entry>
    <title>Cache hit ratio: what 80 % vs 95 % means for your database</title>
    <link rel="alternate" type="text/html" href="https://stackrig.dev/cache-hit-ratio" />
    <id>https://stackrig.dev/cache-hit-ratio</id>
    <published>2026-09-30T00:00:00Z</published>
    <updated>2026-09-30T00:00:00Z</updated>
    <summary>The arithmetic of cache misses, and what a cold cache after a restart does to the database behind it.</summary>
    <category term="model" />
  </entry>
  <entry>
    <title>Retry storms: why retries take your service down</title>
    <link rel="alternate" type="text/html" href="https://stackrig.dev/retry-storms" />
    <id>https://stackrig.dev/retry-storms</id>
    <published>2026-09-30T00:00:00Z</published>
    <updated>2026-10-02T00:00:00Z</updated>
    <summary>How retries multiply load, why a storm can outlive its trigger, and the fixes that work, shown in a design you can run.</summary>
    <category term="model" />
  </entry>
  <entry>
    <title>System design interview: the URL shortener, simulated live</title>
    <link rel="alternate" type="text/html" href="https://stackrig.dev/system-design-url-shortener" />
    <id>https://stackrig.dev/system-design-url-shortener</id>
    <published>2026-09-30T00:00:00Z</published>
    <updated>2026-10-02T00:00:00Z</updated>
    <summary>The classic interview design with its numbers simulated over a real day of traffic: what breaks first, at which load, and what it costs.</summary>
    <category term="model" />
  </entry>
</feed>
