Title card with connected panels labeled OBSERVE, DECIDE, and ACT.

Object and block storage expose different update contracts

Block storage exposes addressable blocks through a device interface. Object storage exposes named objects through an API. Neither label alone specifies durability, consistency, sharing, or price. Start with the application’s required operations, then check the particular service’s contract. A filesystem, database, or compatibility layer can add behavior, but it cannot make every underlying interface interchangeable. ...

March 17, 2027 · 5 min · XB Field Notes
A kernel queue that merges and reorders I/O toward better throughput or fairness.

Disk schedulers order I/O to move the head efficiently

blk-mq gives the block layer a software staging queue per CPU and a hardware dispatch queue per device queue, with the I/O scheduler between them. A request takes the shortest path — straight to the hardware queue — unless a scheduler is attached or it can be merged, in which case it is staged in software first. That scheduler is the only place in the stack where the kernel decides the order your requests reach the device. ...

March 9, 2027 · 5 min · XB Field Notes
Three connected blocks labeled Observe, Decide, and Act.

A stale replication slot holds WAL back

A PostgreSQL replication slot records retention requirements for a consumer. Once the slot has reserved a WAL position, losing the consumer’s connection does not automatically release that position. The primary may keep generating log while the slot’s requirement remains unchanged. The operational risk is retained storage and an increasingly expensive catch-up or rebuild decision. Slot usability depends on retained WAL availability and the configured invalidation rules. ...

October 19, 2026 · 5 min · XB Field Notes
Observe, decide, and act panels for comparing S3 storage classes.

S3 storage classes trade cost for access

A storage class changes retrieval behavior, resilience, and billing, not just the monthly price of bytes. Start with the time allowed to recover data and whether another copy can be recreated. Standard-IA offers immediate access with retrieval charges; Glacier Flexible Retrieval and Deep Archive require restoration before ordinary reads. One Zone-IA also has a different failure boundary: its data is not resilient to physical loss of its Availability Zone. ...

September 30, 2026 · 5 min · XB Field Notes
Title card about vacuum and reusable table space, with Observe, Decide and Act panels.

Vacuum keeps a growing database from bloating

In multi-version storage, deleting a row records the change without immediately freeing the space. Reclaiming that space is maintenance work, and when it is skipped the cost shows up slowly. Deleted does not mean gone An UPDATE or DELETE leaves old PostgreSQL row versions until they are no longer needed by any relevant snapshot. A long transaction can delay that point while other sessions keep changing rows. The transaction alone does not manufacture new bloat in an otherwise idle table. Reclaiming obsolete versions and making their space reusable is distinct from merely committing the delete. ...

August 16, 2026 · 5 min · XB Field Notes
Title card about WAL preceding data-page flushing, with Observe, Decide and Act panels.

WAL makes commit durable before page flushing

Write-ahead logging lets a database make a transaction durable without immediately flushing every table and index page that transaction changed. In PostgreSQL, the log records needed to recover a page must be durable before that page is written to storage. Normal synchronous commit also waits for the commit record to be flushed. Buffered table changes and durable log records therefore advance through different paths. ...

August 14, 2026 · 5 min · XB Field Notes