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.


Articles

23rd October 2026

Dynoxide 1.5.0 release notes

Dynoxide 1.5.0 charges vector reads the way DynamoDB now does, fixes stream eventIDs repeating after a restart, and matches SearchVectors errors to AWS.

Read article
23rd October 2026

DynamoDB changed how it bills a vector read

On 9th October a DynamoDB read of an item with a vector in it cost 2 read units. On 22nd October the same read cost 1. I can't find anything from AWS about it, and the 400KB limit still counts the vector the old way.

Read article
21st October 2026

Dynoxide 1.4.0: clean shutdowns and JSON Lines import

Dynoxide 1.4.0 is a smaller one. JSON Lines import thanks to Sam Chung, a clean way to stop an embedded server, and updates and scans that behave more like DynamoDB.

Read article
11th October 2026

Dynoxide 1.3.0: security fixes and fussier pagination

Dynoxide 1.3.0 ended up a bit bigger than I'd planned. A few of the DynamoDB quirks I worked through, two security fixes, and quieter test output thanks to an external contribution.

Read article
9th October 2026

Parity Suite 3.6 and a month of emulator fixes

Floci went from 337 failing tests to one in five weeks, and LocalStack and MiniStack both moved up a grade. Meanwhile AWS changed how transactions validate halfway through measuring 3.6.0, so that one never reached the board.

Read article
20th September 2026

DynamoDB vector search without embeddings

Serverless Advocate #85 had Lee Harding making the case that DynamoDB vector indexes are a nearest-neighbour tool, not an embeddings one, so I tried the geography case. A single geohash cell misses the nearest shop entirely. Read nine and it does not, which is the update at the end.

Read article
8th September 2026

Running DynamoDB vector search locally

Dynoxide has done DynamoDB vector search since 1.0.0. What I measured before building it, including the bit where AWS says the index is ready about fifteen minutes before it actually is, and the end of a rollout I have been watching since June.

Read article
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
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
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