<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Small Systems Notebook</title>
<subtitle>Working notes on running small web services without drama.</subtitle>
<link href="https://cedar.sanriodevgroup.org/"/>
<link rel="self" href="https://cedar.sanriodevgroup.org/atom.xml"/>
<id>https://cedar.sanriodevgroup.org/</id>
<updated>2024-02-02T12:00:00Z</updated>
<author><name>Small Systems Notebook</name></author>
<entry><title>Reading a handshake trace</title><link href="https://cedar.sanriodevgroup.org/posts/reading-a-handshake-trace/"/><id>https://cedar.sanriodevgroup.org/posts/reading-a-handshake-trace/</id><published>2024-01-06T16:00:00Z</published><updated>2024-02-02T16:00:00Z</updated><summary>What each message in a TLS 1.3 handshake is for, in plain words.</summary></entry>
<entry><title>Choosing DNS TTLs</title><link href="https://cedar.sanriodevgroup.org/posts/choosing-dns-ttls/"/><id>https://cedar.sanriodevgroup.org/posts/choosing-dns-ttls/</id><published>2023-11-27T07:00:00Z</published><updated>2024-01-04T07:00:00Z</updated><summary>Five minutes before a move, a day when nothing is planned.</summary></entry>
<entry><title>Cache headers that age well</title><link href="https://cedar.sanriodevgroup.org/posts/cache-headers-that-age-well/"/><id>https://cedar.sanriodevgroup.org/posts/cache-headers-that-age-well/</id><published>2023-10-17T15:00:00Z</published><updated>2023-10-17T15:00:00Z</updated><summary>Long-lived assets, short-lived pages, and the one header that makes both safe.</summary></entry>
<entry><title>Log rotation without surprises</title><link href="https://cedar.sanriodevgroup.org/posts/log-rotation-without-surprises/"/><id>https://cedar.sanriodevgroup.org/posts/log-rotation-without-surprises/</id><published>2023-08-24T15:00:00Z</published><updated>2023-08-24T15:00:00Z</updated><summary>Size limits, copytruncate, and why the daemon should be told.</summary></entry>
<entry><title>Health checks that tell the truth</title><link href="https://cedar.sanriodevgroup.org/notes/health-checks-that-tell-the-truth/"/><id>https://cedar.sanriodevgroup.org/notes/health-checks-that-tell-the-truth/</id><published>2023-07-06T18:00:00Z</published><updated>2023-07-06T18:00:00Z</updated><summary>A health endpoint that only proves the process is alive is a liveness check. Readiness should exercise what the service needs to do its job, cheaply, and fail when that is not possible.</summary></entry>
<entry><title>Timeouts and budgets</title><link href="https://cedar.sanriodevgroup.org/notes/timeouts-and-budgets/"/><id>https://cedar.sanriodevgroup.org/notes/timeouts-and-budgets/</id><published>2023-06-02T22:00:00Z</published><updated>2023-06-02T22:00:00Z</updated><summary>Every network call gets a timeout, and the timeouts of a request add up to a budget that is smaller than the patience of whoever is waiting. A page that calls two services with ten-second timeouts eac</summary></entry>
</feed>
