Journal
Notes from real projects - AWS, DynamoDB, Rust, home servers, and whatever open source tool I'm currently building.
Articles
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 articleDynamoDB 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 articleDynoxide 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 articleDynoxide 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 articleParity 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 articleDynamoDB 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 articleRunning 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 articleParity 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 articleWhen 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 articleWhat 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