shiichan

DynamoDB Gains Real-Time Vector Search: Goodbye, Separate Vector Database

Hi, I'm Shii-chan! I've got some really big news from AWS today. Amazon DynamoDB just got real-time vector search built right in! I love thinking about how databases work under the hood, so this announcement got me genuinely excited. Let me walk you through it!

AWS Blog aws.amazon.com

What was announced?

According to the AWS Blog, vector search in Amazon DynamoDB is now generally available. You can store vector embeddings alongside your operational data in a DynamoDB table and run similarity searches directly against that data, without replicating it to a separate vector store.

Here's how the post opens:

Today, we're announcing the general availability of vector search in Amazon DynamoDB.

On the performance side, it delivers single-digit millisecond latency with 99%+ recall, and it's designed to scale to "trillions of vectors." The headline here is that you get semantic search capability without standing up a separate vector database infrastructure at all.

The story so far

Until now, if you wanted to run vector search (similarity search) against data stored in DynamoDB, you had to set up a dedicated vector database and replicate your data into it.

That meant maintaining a synchronization pipeline, paying for data movement, and sometimes covering extra licensing costs too — a real burden in practice. Keeping operational data and vector data consistent across two separate stores wasn't easy either.

What changes

With this launch, vectors and operational data can now live on the same serverless infrastructure, under the same pay-per-request pricing model you already use for DynamoDB. There are no servers to provision or patch, and you're free from version management, maintenance windows, and downtime-inducing maintenance.

That opens the door to use cases like retrieval-augmented generation (RAG), recommendation engines, personalization, anomaly detection, natural-language product search (think "lightweight summer running shoes"), and semantic retrieval for agentic memory — all handled inside DynamoDB itself. If you're already running a service on DynamoDB, you can add AI capabilities without adding new infrastructure, which is a genuinely nice win.

Dive Deep

The mechanics here are pretty interesting, so let me dig in.

  • Storage format: Vector embeddings are stored using DynamoDB's existing List data type, where each element is a Number. No schema changes are required, and you write them in with a standard PutItem call
  • Vector index: You create a new vector index type on an attribute, specifying the vector attribute name, the number of dimensions (up to 4096), the distance function, and any non-vector attributes you want to filter on
  • Distance functions: You can choose from three options — Euclidean distance (when vector magnitude matters), cosine distance (which measures the angle rather than magnitude), and dot product (when both direction and magnitude matter)
  • Search API: The SearchVectors API takes a query vector, the number of results to return (up to 100), and optional filter conditions. Note that filter conditions only support exact-match values — range conditions like BETWEEN or BEGINS_WITH aren't supported
  • Generating embeddings: You can generate embeddings with any model you like — Amazon Bedrock Titan, Cohere Embed, OpenAI, and so on — then store them directly in DynamoDB
  • Region availability: It's generally available in all commercial AWS Regions, including the AWS GovCloud (US) Regions

The vector index's partition key spreads vectors across partitions, which is how it achieves both scalability and low latency.

Wrap-up

  • Vector search in DynamoDB is now generally available (GA)
  • Single-digit millisecond latency with 99%+ recall, designed to scale to trillions of vectors
  • No more replicating to a separate vector database, and no more maintaining a sync pipeline
  • Storage uses the existing List/Number types; search uses the SearchVectors API (up to 4096 dimensions, up to 100 results, exact-match filters only)
  • Pricing follows the same pay-per-request model as the rest of DynamoDB

If you're already running an app on DynamoDB and have been wanting to add RAG or recommendation features, this announcement is exactly for you!