Pinned
Early adopter code is live, 30% off your first year with EARLY30. capped at 50 people, good until 31 dec. enter it at checkout, the 30 day trial is unchanged and still needs no card dynotable.com/pricing
DynoTable
@dynotable.bsky.social
The DynamoDB GUI with real SQL — joins, GROUP BY & aggregates, PartiQL, plus an AI agent on your own AWS. Local-first for Mac, Windows & Linux.
41 followers424 following201 posts
Pinned
Early adopter code is live, 30% off your first year with EARLY30. capped at 50 people, good until 31 dec. enter it at checkout, the 30 day trial is unchanged and still needs no card dynotable.com/pricing
Keys take S, N or B only, no boolean, set, map or list. on a base table ORDER#2026#42 in one string keys on two things, a GSI now takes up to 4 attributes per key https://dynotable.com/learn/dynamodb-data-types?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=screenshot
DynoTable reposted
What the DynoTable agent cannot do matters more. no direct writes, no batch deleting a table, no aws keys. on your Bedrock account, every write it drafts waits for you https://dynotable.com/learn/query-dynamodb-with-ai?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=screenshot
Exporting a big dynamodb table? pick NDJSON, one item per line, and stream it. DynoTable writes row by row so a multi gigabyte export never has to fit in memory https://dynotable.com/docs/dynamodb-export?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=screenshot
DynoTable reposted
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. #dynamodb https://martinhicks.dev/articles/dynamodb-vector-read-billing
On-demand costs about 3.5x provisioned per unit at full utilization. divide by real utilization, at 30% busy the two cost about the same. whats your tables number? https://dynotable.com/learn/dynamodb-on-demand-vs-provisioned?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
Disassociating a replica preserves its existing table data. The replica then becomes a standalone DynamoDB table https://aws.amazon.com/about-aws/whats-new/2026/10/dynamodb-global-tables-disassociate/
A sort key turns a partition into a range you can slice. begins_with and between run inside one Query on one partition, ordered, no filter. how do you prefix yours? https://dynotable.com/learn/dynamodb-composite-primary-key?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
Four ways to narrow a read, partition key, sort key condition, sparse index, filter expression. only the last runs after youre billed, the other three shrink the bill https://dynotable.com/learn/dynamodb-filtering-strategies?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
A table gets two key attributes, thats it. name one userId and only users can live in that table. generic pk and sk with the type in the value is how one table holds many https://dynotable.com/learn/dynamodb-key-overloading?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
DynamoDB Streams retains records for 24 hours, so a timestamp outside that window cannot start a replay. Set the timestamp within the retention window when recovering a consumer https://aws.amazon.com/about-aws/whats-new/2026/10/amazon-dynamodb-streams-timestamp-processing
Five LSIs per table, hard cap, GSIs start at 20 and are raisable. an LSI spends the base tables capacity, a GSI brings its own. which do you reach for first? https://dynotable.com/learn/dynamodb-gsi-vs-lsi?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
DynoTable reposted
Replying to @tpschmidt.com
• Graviton carried more than 40% of the EC2 compute Amazon.com used The part I keep coming back to: it's the same DynamoDB you get with a free tier account. Same API, same endpoints. The numbers are just bigger on their side.
Stamp EntityType on every item in a shared table. a Query on one partition returns mixed rows and your code routes on that field. it rides on every row so keep it short https://dynotable.com/learn/dynamodb-type-attribute?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
TransactWriteItems takes a ClientRequestToken. resend the same token inside 10 minutes and dynamodb answers success without applying it twice, your retry safety on a timeout https://dynotable.com/learn/dynamodb-transactions?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
DynoTable Smart Tables now join a table to itself. Pick the employees table on both sides of Add relationship, managerId to employeeId, and each employee row shows their manager's name and title https://dynotable.com/changelog?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=video
DynoTable reposted
Big month for DynamoDB emulators. Floci went from 337 failing conformance tests to one, LocalStack from a B to an A, and MiniStack from a C to a B. All three now pass every Tier 1 test. https://martinhicks.dev/articles/parity-suite-36-release-notes
BatchWriteItem takes 25 writes and isnt all or nothing. throttled ones come back in UnprocessedItems with a 200, not an error, so a loop that ignores them drops writes https://dynotable.com/learn/dynamodb-batch-operations?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
PITR restores to any second in a 1 to 35 day window, into a new table. theres no rename in dynamodb, so a rollback is pointing your app at the new name. whats your window? https://dynotable.com/learn/dynamodb-backup-pitr?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=screenshot
DynoTable reposted
https://lckhd.eu/ftcd9I #AWSLambda #Serverless #DynamoDB #EventDrivenArchitecture #AudioWatermarking Using managed services on AWS like Lambda, S3 and DynamoDB let you build a wide array of solutions without worrying about configuring infrastructure. In the example here, a media pipeline is setup
Export only the items your query matches to S3, straight from the point-in-time backup, so a busy table spends no read capacity. Claude Haiku 5.5 is in the AI assistant too. https://dynotable.com/changelog?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=video
A plain Scan reads one partition at a time so it cant beat one partitions throughput. Segment and TotalSegments split it across workers. how many segments do you run? https://dynotable.com/learn/dynamodb-parallel-scans?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
Pre-warm with WarmThroughput if a new DynamoDB table needs more than 4k writes/s on day one. Without it, mine throttled for 16 min wrote it up for AWS Fundamentals https://awsfundamentals.com/blog/dynamodb-warm-throughput?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
Throttled retries land on the same hot key. the sdk already waits longer each attempt with random jitter, a hand written tight retry loop just keeps the partition hot https://dynotable.com/learn/dynamodb-hot-partition?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
DynoTable now edits or deletes every item a DynamoDB query matches, in the background. You choose how: stage up to 10k and review each diff, or write straight to the table with no limit https://dynotable.com/changelog?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=video
No checkout and no card to try DynoTable. The 30 day trial starts when you activate, and the code field is right on that screen. EARLY30 is 30% off year one for the first 50, til dec 31 https://dynotable.com/download?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=screenshot
Burst capacity is 300 seconds of unused throughput banked per partition. it absorbs a spike then youre on your per second rate. do you plan on it or treat it as luck? https://dynotable.com/learn/dynamodb-adaptive-capacity?utm_source=bluesky&utm_medium=social&utm_campaign=drip
This cuts the need to move an entire table when an audit or backfill only needs a slice. You still own filter validation and downstream schema handling, while s3 storage and export charges remain https://aws.amazon.com/about-aws/whats-new/2026/10/amazon-dynamodb-introduces-filtered-export/
ADD on a missing number starts at 0, list_append on a missing list fails the write. wrap it in if_not_exists(LineItems, :empty) and the first append creates the list https://dynotable.com/learn/dynamodb-update-expressions?utm_source=bluesky&utm_medium=social&utm_campaign=drip
Optimistic locking is one condition, write only if version = :seen. a stale write just fails, no lock held. do you version every item or only the contended ones? https://dynotable.com/learn/dynamodb-condition-expressions?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=screenshot
Query sums the fragments, rounds up to 4kb once, BatchGetItem rounds each item. eight 500 byte fragments, 8x the read units https://aws.amazon.com/blogs/database/megabytes-in-milliseconds-how-firetv-uses-parallel-queries-and-vertical-partitioning-to-serve-millions-of-customers-in-amazon-dynamodb/
Cheapest cross continent setup is two replicas plus a witness, the witness bills no storage or writes. catch, a table with items cant convert to MRSC, it has to start empty https://aws.amazon.com/about-aws/whats-new/2026/09/dynamodb-mrsc-additional-regions/
Dont count likes with a Query, keep the number on the parent. write the like and ADD 1 to the tally in one TransactWriteItems, both land or neither https://dynotable.com/learn/dynamodb-reference-counts?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=screenshot
One row feature flag table is fine in dynamodb. hardcode the key and GetItem it, no Query, no Scan. under 4kb thats half a read unit, the cheapest read there is https://dynotable.com/learn/dynamodb-singleton-items?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=diagram
DynoTable reposted
📰 New article by Mohit Agarwal, John Terhune Megabytes in milliseconds: How FireTV uses parallel queries and vertical partitioning to serve millions of customers in Amazon DynamoDB #AWS #Databases
DynoTable's AI agent now runs on GPT-6 Luna and Claude Opus 5.5 with your own Bedrock keys. It joins two tables, finds your top customers and stages the fix. You review before it writes. https://dynotable.com/changelog?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=video
we bisected dynamodb's write-unit boundary: a 1024-dim embedding bills 7,653 B unindexed, exactly 4,096 B once vector-indexed. AWS docs say the opposite. https://dynotable.com/learn/dynamodb-vector-search?utm_source=bluesky&utm_medium=social&utm_campaign=drip
DynoTable now filters on attributes inside a DynamoDB map: pick the country field nested under manufacturer straight from the column list. Document view also gained an add row. https://dynotable.com/changelog?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=screenshot
aws-sdk-rust has no input struct for a dynamodb query, every field is a builder call. this free builder emits the whole chain, paginator included. anyone running dynamodb from rust in prod? https://dynotable.com/tools/dynamodb-query-builder?utm_source=bluesky&utm_medium=social&utm_campaign=drip
dynamodb bills by item size and its not the json length. attribute names count, a number costs a byte per two digits, a map adds 3. this library sizes native items exactly, MIT https://github.com/dynotable/dynamodb-item-size-calculator?utm_source=bluesky&utm_medium=social&utm_campaign=drip
a dynamodb expression is three coupled strings, the expression, the aliases, the values. this library builds them in sync and emits sdk v3, boto3, go or rust code, zero deps, MIT https://github.com/dynotable/dynamodb-expression-builder?utm_source=bluesky&utm_medium=social&utm_campaign=drip
dynamodb has 573 reserved words, name status date count are all on the list. this checker library ships the full list plus ExpressionAttributeNames aliases, zero deps, MIT https://github.com/dynotable/dynamodb-reserved-words?utm_source=bluesky&utm_medium=social&utm_campaign=drip
PartiQL language support for codemirror 6, highlighting plus a linter that flags what dynamodb wont run, with quick fixes as you type. MIT, from the DynoTable editor https://github.com/dynotable/codemirror-lang-partiql?utm_source=bluesky&utm_medium=social&utm_campaign=drip
DynoTable now supports vector indexes for DynamoDB. Create one, pick a Bedrock embedding model, and each save refreshes the embedding. Then search by meaning or Find similar on a row. https://dynotable.com/changelog?utm_source=bluesky&utm_medium=social&utm_campaign=drip&utm_content=video
Ask an llm for PartiQL and you get a SELECT with no key condition, a full scan wearing sql syntax. the language is sql shaped, the cost model is still DynamoDB https://dynotable.com/learn/dynamodb-partiql-vs-sql?utm_source=bluesky&utm_medium=social&utm_campaign=drip
Global tables are active active, every replica takes writes and a conflict resolves last writer wins. One of those writes just disappears. would your model notice? https://dynotable.com/learn/dynamodb-global-tables?utm_source=bluesky&utm_medium=social&utm_campaign=drip
It removes a scheduled export pipeline, but not the DynamoDB read and storage costs behind analytics. Keep broad analytical scans away from hot production traffic if you need predictable latency https://aws.amazon.com/blogs/database/run-duckdb-analytics-on-your-amazon-dynamodb-data-with-zero-etl/
A chatbot that cant see your schema will invent attribute names. ours writes sql and PartiQL against the schema it indexed from your real tables https://dynotable.com/learn/query-dynamodb-with-ai?utm_source=bluesky&utm_medium=social&utm_campaign=drip
PutItem replaces the whole item by default, every write is an overwrite. attribute_not_exists(pk) in a condition expression is what turns it into create only: https://dynotable.com/dynamodb-code-examples/putitem-cli?utm_source=bluesky&utm_medium=social&utm_campaign=drip
DynamoDB is a bad analytics database and thats the tradeoff, not a flaw. it buys predictable speed on known access patterns. run olap somewhere built for it https://dynotable.com/learn/dynamodb-when-not-single-table-design?utm_source=bluesky&utm_medium=social&utm_campaign=drip