<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel>
<title>Rhys — Engineering notes</title><link>https://rsw.lol/notes/</link>
<description>Published notes on systems engineering, performance, infrastructure and AI by Rhys.</description>
<language>en-GB</language><atom:link href="https://rsw.lol/feed.xml" rel="self" type="application/rss+xml"/>
<item><title>Latency budgets need critical paths</title><link>https://rsw.lol/notes/latency-budgets-need-critical-paths/</link><guid isPermaLink="true">https://rsw.lol/notes/latency-budgets-need-critical-paths/</guid><description>Budget user-visible latency through dependency graphs, queue boundaries and deadlines rather than adding every span or percentile.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>WebSocket reconnection is state reconciliation</title><link>https://rsw.lol/notes/websocket-reconnection-is-state-reconciliation/</link><guid isPermaLink="true">https://rsw.lol/notes/websocket-reconnection-is-state-reconciliation/</guid><description>Reconnect a live application with explicit cursors, consistent snapshots, bounded replay and application acknowledgements rather than a socket retry alone.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Context compression can delete the proof</title><link>https://rsw.lol/notes/context-compression-can-delete-the-proof/</link><guid isPermaLink="true">https://rsw.lol/notes/context-compression-can-delete-the-proof/</guid><description>Token reduction is useful only when compressed context preserves the evidence, exceptions and uncertainty needed to justify the answer.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>False sharing is a layout bug</title><link>https://rsw.lol/notes/false-sharing-is-a-layout-bug/</link><guid isPermaLink="true">https://rsw.lol/notes/false-sharing-is-a-layout-bug/</guid><description>Distinguish logical independence from coherence traffic, then change layout only when ownership and measurements support it.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Backpressure for streaming AI</title><link>https://rsw.lol/notes/backpressure-for-streaming-ai/</link><guid isPermaLink="true">https://rsw.lol/notes/backpressure-for-streaming-ai/</guid><description>Bound token and audio streams with explicit queue budgets, cancellation, fair scheduling and honest completion semantics.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Fuzzing the parser boundary</title><link>https://rsw.lol/notes/fuzzing-the-parser-boundary/</link><guid isPermaLink="true">https://rsw.lol/notes/fuzzing-the-parser-boundary/</guid><description>Build a parser fuzz target around bounded resources, explicit rejection and semantic oracles, then preserve useful counterexamples.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Disaster recovery is a replay budget</title><link>https://rsw.lol/notes/disaster-recovery-is-a-replay-budget/</link><guid isPermaLink="true">https://rsw.lol/notes/disaster-recovery-is-a-replay-budget/</guid><description>Deriving recovery objectives from durable copies, restore throughput, replay capacity, dependency recovery and verified cutover.</description><category>INFRASTRUCTURE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Cache invalidation is a versioning problem</title><link>https://rsw.lol/notes/cache-invalidation-is-a-versioning-problem/</link><guid isPermaLink="true">https://rsw.lol/notes/cache-invalidation-is-a-versioning-problem/</guid><description>Making cache freshness explicit with complete keys, source versions, guarded fills and recovery rules for missed invalidations.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Floating-point is an error budget</title><link>https://rsw.lol/notes/floating-point-is-an-error-budget/</link><guid isPermaLink="true">https://rsw.lol/notes/floating-point-is-an-error-budget/</guid><description>Choose numeric representations, tolerances and stable algorithms from the meaning of the result rather than a blanket rule about decimals.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Arena allocation and the cost of reset</title><link>https://rsw.lol/notes/arena-allocation-and-the-cost-of-reset/</link><guid isPermaLink="true">https://rsw.lol/notes/arena-allocation-and-the-cost-of-reset/</guid><description>Arena allocation simplifies allocation only when object lifetimes, cleanup and retention agree with the reset boundary.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>io_uring and buffer ownership</title><link>https://rsw.lol/notes/io-uring-and-buffer-ownership/</link><guid isPermaLink="true">https://rsw.lol/notes/io-uring-and-buffer-ownership/</guid><description>Model submitted buffers, terminal completions, cancellation and zero-copy notifications as an explicit ownership protocol.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Tool permissions need capabilities</title><link>https://rsw.lol/notes/tool-permissions-need-capabilities/</link><guid isPermaLink="true">https://rsw.lol/notes/tool-permissions-need-capabilities/</guid><description>Agent tools need narrow, enforceable authority over operations and resources, with explicit limits for delegation, expiry and commitment.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Zero-copy is a lifetime decision</title><link>https://rsw.lol/notes/zero-copy-is-a-lifetime-decision/</link><guid isPermaLink="true">https://rsw.lol/notes/zero-copy-is-a-lifetime-decision/</guid><description>Avoiding a copy changes who owns memory, how long buffers stay alive and which boundaries can safely share them.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Why “unknown” should be a valid system output</title><link>https://rsw.lol/notes/unknown-is-a-valid-output/</link><guid isPermaLink="true">https://rsw.lol/notes/unknown-is-a-valid-output/</guid><description>Abstention as a decision with a cost, and a Rust contract that keeps unsupported conclusions separate from negative answers.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Embeddings are a versioned interface</title><link>https://rsw.lol/notes/embeddings-are-a-versioned-interface/</link><guid isPermaLink="true">https://rsw.lol/notes/embeddings-are-a-versioned-interface/</guid><description>An embedding migration changes the meaning of distance. Treat the encoder, corpus and index as one versioned retrieval contract.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Evaluating AI without grading the vibes</title><link>https://rsw.lol/notes/evaluating-ai-without-grading-the-vibes/</link><guid isPermaLink="true">https://rsw.lol/notes/evaluating-ai-without-grading-the-vibes/</guid><description>Build evaluations around decisions, paired comparisons, error costs and reproducible conditions rather than polished answers.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Speculative decoding spends parallelism</title><link>https://rsw.lol/notes/speculative-decoding-spends-parallelism/</link><guid isPermaLink="true">https://rsw.lol/notes/speculative-decoding-spends-parallelism/</guid><description>The exact sampling correction behind speculative decoding, with a worked acceptance example and realistic cost boundaries.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Lock-free is not wait-free</title><link>https://rsw.lol/notes/lock-free-is-not-wait-free/</link><guid isPermaLink="true">https://rsw.lol/notes/lock-free-is-not-wait-free/</guid><description>Separate system-wide progress, individual completion and elapsed deadlines when evaluating concurrent algorithms.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Indexes are a write-path decision</title><link>https://rsw.lol/notes/indexes-are-a-write-path-decision/</link><guid isPermaLink="true">https://rsw.lol/notes/indexes-are-a-write-path-decision/</guid><description>Evaluating indexes as maintained data structures with consequences for updates, storage, concurrency and the full query workload.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Bounded queues are a product decision</title><link>https://rsw.lol/notes/bounded-queues-are-a-product-decision/</link><guid isPermaLink="true">https://rsw.lol/notes/bounded-queues-are-a-product-decision/</guid><description>Queue capacity determines which promises a service makes under load. Backpressure, rejection and deadlines have different user-visible meanings.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Synthetic data needs a failure model</title><link>https://rsw.lol/notes/synthetic-data-needs-a-failure-model/</link><guid isPermaLink="true">https://rsw.lol/notes/synthetic-data-needs-a-failure-model/</guid><description>Generated examples can expand coverage or erase it. Analyse selection bias, recursive replacement and verification before treating volume as new information.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Property tests need a model</title><link>https://rsw.lol/notes/property-tests-need-a-model/</link><guid isPermaLink="true">https://rsw.lol/notes/property-tests-need-a-model/</guid><description>Generated inputs become valuable when an independent model, meaningful invariants and intentional generators define what should happen.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Event time is not wall-clock time: reading the Dataflow paper</title><link>https://rsw.lol/notes/event-time-is-not-wall-clock-time/</link><guid isPermaLink="true">https://rsw.lol/notes/event-time-is-not-wall-clock-time/</guid><description>An analysis of the Dataflow model through late events, watermarks, revisions and the application decisions that a streaming engine cannot make.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Small models and the cost of a decision</title><link>https://rsw.lol/notes/small-models-and-the-cost-of-a-decision/</link><guid isPermaLink="true">https://rsw.lol/notes/small-models-and-the-cost-of-a-decision/</guid><description>Reason about tiny learned runtimes through total decision latency, feature costs, precision, fallback behavior and honest benchmarks.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>The tail is the system</title><link>https://rsw.lol/notes/the-tail-is-the-system/</link><guid isPermaLink="true">https://rsw.lol/notes/the-tail-is-the-system/</guid><description>Reading Dean and Barroso through fan-out, correlated slowdowns and the resource budget that makes hedging succeed or fail.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Cross-chain funding attribution: evidence before interpretation</title><link>https://rsw.lol/notes/cross-chain-funding-tracer/</link><guid isPermaLink="true">https://rsw.lol/notes/cross-chain-funding-tracer/</guid><description>A rigorous model for cross-chain traces that separates observations, bridge joins, conservation checks and uncertain attribution.</description><category>INFRASTRUCTURE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Prompt injection is a data boundary</title><link>https://rsw.lol/notes/prompt-injection-is-a-data-boundary/</link><guid isPermaLink="true">https://rsw.lol/notes/prompt-injection-is-a-data-boundary/</guid><description>Defensive design for keeping retrieved text, tool output and model suggestions from acquiring application authority.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Rust async without a runtime: what that actually means</title><link>https://rsw.lol/notes/rust-async-without-a-runtime-myth/</link><guid isPermaLink="true">https://rsw.lol/notes/rust-async-without-a-runtime-myth/</guid><description>Futures define a polling contract. Executors, wakeups, I/O drivers and scheduling policy are separate responsibilities that still need an owner.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>AI evaluation needs a dataset lifecycle</title><link>https://rsw.lol/notes/ai-evaluation-needs-a-dataset-lifecycle/</link><guid isPermaLink="true">https://rsw.lol/notes/ai-evaluation-needs-a-dataset-lifecycle/</guid><description>A benchmark is a versioned measurement instrument. Track provenance, split related cases together and make corrections without silently rewriting the result.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>CPU time is not wall time</title><link>https://rsw.lol/notes/cpu-time-is-not-wall-time/</link><guid isPermaLink="true">https://rsw.lol/notes/cpu-time-is-not-wall-time/</guid><description>Separate execution, waiting and parallel work before turning elapsed time or CPU utilization into a performance diagnosis.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Chunking is an information boundary</title><link>https://rsw.lol/notes/chunking-is-an-information-boundary/</link><guid isPermaLink="true">https://rsw.lol/notes/chunking-is-an-information-boundary/</guid><description>A retrieval chunk decides which qualifiers, relationships and source identities remain available when a passage is read alone.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Voice AI should prepare before you stop talking</title><link>https://rsw.lol/notes/voice-ai-should-not-wait/</link><guid isPermaLink="true">https://rsw.lol/notes/voice-ai-should-not-wait/</guid><description>A design for speculative voice responses that separates listening, preparation, commitment and cancellation.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Cache locality before cleverness</title><link>https://rsw.lol/notes/cache-locality-before-cleverness/</link><guid isPermaLink="true">https://rsw.lol/notes/cache-locality-before-cleverness/</guid><description>The representation that exposes useful bytes can matter more than a clever loop. Start with access patterns, working sets and ownership between cores.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Speech interruption is a state machine</title><link>https://rsw.lol/notes/speech-interruption-is-a-state-machine/</link><guid isPermaLink="true">https://rsw.lol/notes/speech-interruption-is-a-state-machine/</guid><description>Stopping a voice assistant requires more than cancelling generation. Invalidate stale audio, control playback and reconcile what the user actually heard.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>When Go is the right rewrite</title><link>https://rsw.lol/notes/when-go-is-the-right-rewrite/</link><guid isPermaLink="true">https://rsw.lol/notes/when-go-is-the-right-rewrite/</guid><description>A rewrite should remove a measured constraint while preserving the service&apos;s real contract. Go&apos;s runtime is a tradeoff to evaluate, not a verdict.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>The dual-write problem: what an outbox actually guarantees</title><link>https://rsw.lol/notes/the-dual-write-problem/</link><guid isPermaLink="true">https://rsw.lol/notes/the-dual-write-problem/</guid><description>An outbox makes a database change and publication intent atomic; delivery, ordering, deduplication and consumer effects still need their own contracts.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Multi-region is a failure model</title><link>https://rsw.lol/notes/multi-region-is-a-failure-model/</link><guid isPermaLink="true">https://rsw.lol/notes/multi-region-is-a-failure-model/</guid><description>Designing regional resilience through quorum placement, replication lag, failover authority, capacity headroom and shared dependencies.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Profile the production shape</title><link>https://rsw.lol/notes/profile-the-production-shape/</link><guid isPermaLink="true">https://rsw.lol/notes/profile-the-production-shape/</guid><description>A profile estimates where a particular workload spent resources. Make its population, sampling and attribution boundaries explicit.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>LoRA is a capacity choice</title><link>https://rsw.lol/notes/lora-is-a-capacity-choice/</link><guid isPermaLink="true">https://rsw.lol/notes/lora-is-a-capacity-choice/</guid><description>A reading of LoRA through rank, parameter counts, deployment identity and the limitations of low-rank adaptation.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Attention is a memory interface</title><link>https://rsw.lol/notes/attention-is-a-memory-interface/</link><guid isPermaLink="true">https://rsw.lol/notes/attention-is-a-memory-interface/</guid><description>Reading Attention Is All You Need through addressing, data movement, masking and the limits of weighted retrieval.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Tracing needs context, not just spans</title><link>https://rsw.lol/notes/tracing-needs-context-not-just-spans/</link><guid isPermaLink="true">https://rsw.lol/notes/tracing-needs-context-not-just-spans/</guid><description>Building useful traces through causal propagation, asynchronous boundaries, sampling and controlled diagnostic context.</description><category>INFRASTRUCTURE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Model routing needs a fallback contract</title><link>https://rsw.lol/notes/model-routing-needs-a-fallback-contract/</link><guid isPermaLink="true">https://rsw.lol/notes/model-routing-needs-a-fallback-contract/</guid><description>Routing between models needs explicit quality, latency, privacy and action semantics when the preferred path fails or escalates.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Raft is a replicated state machine contract</title><link>https://rsw.lol/notes/raft-is-a-replicated-state-machine-contract/</link><guid isPermaLink="true">https://rsw.lol/notes/raft-is-a-replicated-state-machine-contract/</guid><description>Reading Raft through its application boundary: commitment, deterministic execution, retries, membership changes and trustworthy reads.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Cancellation is a protocol</title><link>https://rsw.lol/notes/cancellation-is-a-protocol/</link><guid isPermaLink="true">https://rsw.lol/notes/cancellation-is-a-protocol/</guid><description>Stopping local waiting does not undo remote work. A reliable cancellation design needs ownership, acknowledgements and a clear commit boundary.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Leases need fencing tokens</title><link>https://rsw.lol/notes/leases-need-fencing-tokens/</link><guid isPermaLink="true">https://rsw.lol/notes/leases-need-fencing-tokens/</guid><description>Why an expired lease cannot stop an old worker, and how resource-enforced fencing turns ownership changes into safe writes.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Retrieval needs an abstention policy</title><link>https://rsw.lol/notes/retrieval-needs-an-abstention-policy/</link><guid isPermaLink="true">https://rsw.lol/notes/retrieval-needs-an-abstention-policy/</guid><description>Why retrieved text is not enough: evidence contracts, claim-level support and risk-versus-coverage decisions for RAG.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>SIMD begins with a data contract</title><link>https://rsw.lol/notes/simd-begins-with-a-data-contract/</link><guid isPermaLink="true">https://rsw.lol/notes/simd-begins-with-a-data-contract/</guid><description>Vectorization depends on aliasing, numeric semantics, tails and deployment capabilities before instruction width becomes useful.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Isolation levels are observable behaviour</title><link>https://rsw.lol/notes/isolation-levels-are-observable-behaviour/</link><guid isPermaLink="true">https://rsw.lol/notes/isolation-levels-are-observable-behaviour/</guid><description>Understanding transaction isolation through concurrent histories, write skew, retries and the invariants users can observe.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Webhooks are a distributed systems problem</title><link>https://rsw.lol/notes/webhooks-are-a-distributed-systems-problem/</link><guid isPermaLink="true">https://rsw.lol/notes/webhooks-are-a-distributed-systems-problem/</guid><description>Treat webhook receipt, processing, ordering and reconciliation as separate contracts instead of assuming an HTTP callback is a reliable queue.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Prefix caching needs an identity</title><link>https://rsw.lol/notes/prefix-caching-needs-an-identity/</link><guid isPermaLink="true">https://rsw.lol/notes/prefix-caching-needs-an-identity/</guid><description>A prefix cache is correct only when its key identifies the computation, its authorization scope and the inputs that produced the cached state.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Configuration rollouts are distributed writes</title><link>https://rsw.lol/notes/configuration-rollouts-are-distributed-writes/</link><guid isPermaLink="true">https://rsw.lol/notes/configuration-rollouts-are-distributed-writes/</guid><description>Treating configuration activation as versioned state replication with validation, compatibility, canaries and recovery from missed updates.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>State machines need invalid transitions</title><link>https://rsw.lol/notes/state-machines-need-invalid-transitions/</link><guid isPermaLink="true">https://rsw.lol/notes/state-machines-need-invalid-transitions/</guid><description>A useful state machine specifies rejected events, guards, atomic transitions and recovery as carefully as its happy path.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Ordering events without a global clock: reading Lamport</title><link>https://rsw.lol/notes/ordering-events-without-a-global-clock/</link><guid isPermaLink="true">https://rsw.lol/notes/ordering-events-without-a-global-clock/</guid><description>Lamport clocks preserve causal order without measuring elapsed time; this analysis works through their guarantees, limits and practical alternatives.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Reranking is a budget allocation problem</title><link>https://rsw.lol/notes/reranking-is-a-budget-allocation-problem/</link><guid isPermaLink="true">https://rsw.lol/notes/reranking-is-a-budget-allocation-problem/</guid><description>How candidate recall, cross-encoder cost and evidence coverage determine where a retrieval system should spend its reranking budget.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Decoding is part of the product</title><link>https://rsw.lol/notes/decoding-is-part-of-the-product/</link><guid isPermaLink="true">https://rsw.lol/notes/decoding-is-part-of-the-product/</guid><description>Temperature, truncation and stopping rules change the behaviour users receive. Treat decoding as a versioned product policy, with task-specific evaluation.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Retry budgets prevent amplification</title><link>https://rsw.lol/notes/retry-budgets-prevent-amplification/</link><guid isPermaLink="true">https://rsw.lol/notes/retry-budgets-prevent-amplification/</guid><description>Treating retries as additional load with a finite budget, coordinated deadlines and explicit rules for ambiguous operations.</description><category>INFRASTRUCTURE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Performance regressions need experiments</title><link>https://rsw.lol/notes/performance-regressions-need-experiments/</link><guid isPermaLink="true">https://rsw.lol/notes/performance-regressions-need-experiments/</guid><description>Design comparative CI experiments around pairing, practical effect sizes and controlled environments instead of brittle timing thresholds.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>The KV cache is a systems problem</title><link>https://rsw.lol/notes/kv-cache-is-a-systems-problem/</link><guid isPermaLink="true">https://rsw.lol/notes/kv-cache-is-a-systems-problem/</guid><description>A PagedAttention reading focused on memory accounting, fragmentation, ownership, scheduling and serving trade-offs.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Agents need transaction boundaries</title><link>https://rsw.lol/notes/agents-need-transaction-boundaries/</link><guid isPermaLink="true">https://rsw.lol/notes/agents-need-transaction-boundaries/</guid><description>Design AI tool execution around proposals, durable intent, idempotency, stale state and uncertain external outcomes.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Cardinality is an observability budget</title><link>https://rsw.lol/notes/cardinality-is-an-observability-budget/</link><guid isPermaLink="true">https://rsw.lol/notes/cardinality-is-an-observability-budget/</guid><description>Budgeting metric series through label combinations, histogram expansion, churn and the questions each dimension must answer.</description><category>INFRASTRUCTURE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>7.4 microseconds: what a benchmark must explain</title><link>https://rsw.lol/notes/7-4-microseconds/</link><guid isPermaLink="true">https://rsw.lol/notes/7-4-microseconds/</guid><description>A reported median is the beginning of a performance argument. Measurement boundaries, sampling and workload design determine what it means.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Rate limits need a fairness policy</title><link>https://rsw.lol/notes/rate-limits-need-a-fairness-policy/</link><guid isPermaLink="true">https://rsw.lol/notes/rate-limits-need-a-fairness-policy/</guid><description>Why a request counter cannot decide fair access, and how identities, cost weights, concurrency and reserved capacity change admission.</description><category>INFRASTRUCTURE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Exactly once needs a boundary</title><link>https://rsw.lol/notes/exactly-once-needs-a-boundary/</link><guid isPermaLink="true">https://rsw.lol/notes/exactly-once-needs-a-boundary/</guid><description>Exactly-once claims become useful when they specify the effect, transaction boundary, identity, retention window and recovery assumptions.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Structured output is not semantic correctness</title><link>https://rsw.lol/notes/structured-output-is-not-semantic-correctness/</link><guid isPermaLink="true">https://rsw.lol/notes/structured-output-is-not-semantic-correctness/</guid><description>A typed AI response can still be false, stale or unauthorized. Design validation around the decision it will drive.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Agent memory needs forgetting</title><link>https://rsw.lol/notes/agent-memory-needs-forgetting/</link><guid isPermaLink="true">https://rsw.lol/notes/agent-memory-needs-forgetting/</guid><description>Durable agent memory needs retention, provenance, correction and deletion semantics that remain valid across summaries and indexes.</description><category>AI</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Open-loop load tests tell a different story</title><link>https://rsw.lol/notes/open-loop-load-tests-tell-a-different-story/</link><guid isPermaLink="true">https://rsw.lol/notes/open-loop-load-tests-tell-a-different-story/</guid><description>Arrival schedules, coordinated omission and generator limits determine what a load test can honestly say about overload.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Backfills that do not fight production</title><link>https://rsw.lol/notes/backfills-that-do-not-fight-production/</link><guid isPermaLink="true">https://rsw.lol/notes/backfills-that-do-not-fight-production/</guid><description>Design resumable backfills around consistent cuts, conditional writes, adaptive resource budgets and verifiable completion.</description><category>INFRASTRUCTURE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Mixture of experts still needs a scheduler</title><link>https://rsw.lol/notes/mixture-of-experts-still-needs-a-scheduler/</link><guid isPermaLink="true">https://rsw.lol/notes/mixture-of-experts-still-needs-a-scheduler/</guid><description>Sparse expert activation saves arithmetic only within a system that can route tokens, balance capacity and control communication costs.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Designing systems for uncertainty</title><link>https://rsw.lol/notes/designing-for-uncertainty/</link><guid isPermaLink="true">https://rsw.lol/notes/designing-for-uncertainty/</guid><description>Freshness, provenance and conflicting observations belong in the data contract, before a consumer decides what to do.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Zero-downtime migrations need expand-contract</title><link>https://rsw.lol/notes/zero-downtime-migrations-need-expand-contract/</link><guid isPermaLink="true">https://rsw.lol/notes/zero-downtime-migrations-need-expand-contract/</guid><description>Planning database changes as overlapping application versions, bounded data work and evidence-based removal of old schema.</description><category>INFRASTRUCTURE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Bloom filters spend false positives</title><link>https://rsw.lol/notes/bloom-filters-spend-false-positives/</link><guid isPermaLink="true">https://rsw.lol/notes/bloom-filters-spend-false-positives/</guid><description>Sizing Bloom filters, pricing false positives and preserving the conditions under which a negative answer is trustworthy.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Syscalls are not the whole I/O cost</title><link>https://rsw.lol/notes/syscalls-are-not-the-whole-io-cost/</link><guid isPermaLink="true">https://rsw.lol/notes/syscalls-are-not-the-whole-io-cost/</guid><description>Account for copies, cache state, queueing and durability before attributing I/O performance to system-call counts.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>LSM trees move the write cost</title><link>https://rsw.lol/notes/lsm-trees-move-the-write-cost/</link><guid isPermaLink="true">https://rsw.lol/notes/lsm-trees-move-the-write-cost/</guid><description>Understanding log-structured storage through compaction debt, read and space amplification, tombstones and sustainable throughput.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Replay is an architectural feature</title><link>https://rsw.lol/notes/replay-is-an-architectural-feature/</link><guid isPermaLink="true">https://rsw.lol/notes/replay-is-an-architectural-feature/</guid><description>A retained event log becomes a recovery tool only when inputs, transformations, side effects, checkpoints and output comparison support replay.</description><category>INFRASTRUCTURE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Pagination needs a consistency contract</title><link>https://rsw.lol/notes/pagination-needs-a-consistency-contract/</link><guid isPermaLink="true">https://rsw.lol/notes/pagination-needs-a-consistency-contract/</guid><description>Choosing between live traversal and stable snapshots, with deterministic keyset ordering and explicit cursor semantics.</description><category>INFRASTRUCTURE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Memory ordering without mysticism</title><link>https://rsw.lol/notes/memory-ordering-without-mysticism/</link><guid isPermaLink="true">https://rsw.lol/notes/memory-ordering-without-mysticism/</guid><description>Reason about atomic publication through happens-before edges, ownership and concrete failure cases rather than processor folklore.</description><category>SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Schema evolution without flag days</title><link>https://rsw.lol/notes/schema-evolution-without-flag-days/</link><guid isPermaLink="true">https://rsw.lol/notes/schema-evolution-without-flag-days/</guid><description>Evolve distributed contracts with explicit compatibility directions, semantic migration, expand-and-contract rollout and archived replay fixtures.</description><category>DISTRIBUTED SYSTEMS</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item>
<item><title>Quantization moves the error</title><link>https://rsw.lol/notes/quantization-moves-the-error/</link><guid isPermaLink="true">https://rsw.lol/notes/quantization-moves-the-error/</guid><description>A worked quantization and bias-correction example shows why small weight error does not guarantee small decision error.</description><category>PERFORMANCE</category><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item></channel></rss>