A black and white portrait photo of Martin Hicks.

Journal

Notes from real projects - AWS, DynamoDB, Rust, home servers, and whatever open source tool I'm currently building.


The Parity Suite logo, a teal rounded square with three descending bars, on a near-black background above the paritysuite.org wordmark 13th August 2026

Parity Suite 3.0.0: measuring the wrong thing

The board scored emulators on a pass rate over what they attempted, so a score could jump 8 points without the engine changing a line. 3.0.0 replaces that with two figures, letter grades, and 56 new tests.

Read article →
A scattered cloud of glowing amber points on a near-black background, with one bright point at the centre joined to its three closest neighbours by thin lines 13th August 2026

When a DynamoDB vector index is actually ready

AWS's docs contradict each other about what searching a backfilling vector index does, describe a state the index never enters, and name a readiness signal that arrives too early. Here's what I measured instead.

Read article →
The Parity Suite logo, a teal rounded square with three descending bars, on a near-black background above the paritysuite.org wordmark 13th August 2026

What a write to an indexed DynamoDB table costs

Adding a GSI to a DynamoDB table doubles the cost of some writes and changes nothing about others, and which is which isn't well documented. So I measured it against real DynamoDB and pinned every number.

Read article →
The Dynoxide hexagonal logo centred on a near-black background 28th July 2026

Dynoxide 0.12.0: PartiQL RETURNING, wasm conformance

RETURNING finally does something, the wasm build lands on the conformance board at 100% over three quarters of the suite, and PartiQL UPDATE stops creating rows it shouldn't.

Read article →
The teal Parity Suite logo centred on a near-black background, with the paritysuite.org wordmark in white beneath it 17th July 2026

You can't pin DynamoDB to one region

My DynamoDB conformance suite took one AWS region as ground truth. Then that region started accepting a value the rest of AWS rejected, and weeks later reverted it. AWS ships changes region by region, so one region was never a safe baseline.

Read article →
The Dynoxide hexagonal logo centred on a near-black background 5th July 2026

Dynoxide 0.11.3: closing a Windows port hijack

Issue #23 asked for a Windows socket option investigation. It found the opposite problem: dynoxide's ports could be hijacked by a same-user process. 0.11.3 closes that, and the test suite now runs on Windows for the first time.

Read article →
The Dynoxide hexagonal logo centred on a near-black background 2nd July 2026

Dynoxide 0.11.2: a stack of conformance fixes

Last week I pinned what a conditional DynamoDB transaction costs against real AWS. Dynoxide 0.11.2 makes the engine report the same numbers, fixes an UpdateTable bug that dropped your table keys, and closes a stack of projection and validation gaps.

Read article →
The teal Parity Suite logo centred on a near-black background, with the paritysuite.org wordmark in white beneath it 1st July 2026

What a conditional DynamoDB transaction actually costs

Does a conditional write inside a DynamoDB transaction cost read capacity on top of the write, or is it write all the way down? The docs aren't clear, so I ran it against real DynamoDB and pinned what it costs, re-checked on every run.

Read article →
The Dynoxide hexagonal logo centred on a near-black background 26th June 2026

Dynoxide 0.11.1: four conformance fixes

A small dynoxide patch. Four fixes where the engine evaluated an expression or validated a number a bit differently from real DynamoDB, most of them checked back against real AWS.

Read article →
A faded screenshot of the accesspatterns.dev playground console with the accesspatterns.dev wordmark overlaid, in the dark oxide theme 25th June 2026

Learn DynamoDB by running it - accesspatterns.dev

DynamoDB is a brilliant database and a hard one to learn. So I built accesspatterns.dev - a real engine in a browser tab where you learn it by running it, from your first GetItem to single-table design. No AWS account, nothing to install.

Read article →