dynavec / Docs / Frequently Asked Questions

Frequently Asked Questions

Common questions about regions, limits, consistency, costs, and architecture.

Regions & Availability

Which AWS regions are supported?

dynavec runs in any AWS region where both Amazon S3 Vectors and Amazon DynamoDB are supported (for example, us-east-1, us-west-2, ap-south-1, eu-west-1, and others). Specify your target region in DynavecConfig(region="...").

Can I query across multiple AWS regions?

Each DynavecConfig connects to a single AWS region. Keeping your S3 vector bucket and DynamoDB table in the same region as your application workloads (e.g. Lambda, ECS, EC2) ensures single-digit millisecond latency and eliminates cross-region data transfer fees. If you need multi-region deployments, create independent Dynavec client instances per region.

Can I use Amazon Bedrock or third-party embedders in different regions?

Yes. BedrockEmbedder accepts an explicit region parameter (e.g. BedrockEmbedder(model_id="amazon.titan-embed-text-v2:0", region="us-east-1")) even if your vector database resources reside in a different region. Third-party embedders (OpenAI, Gemini, Cohere, Voyage) operate over public HTTPS APIs regardless of your AWS region.

Limits & Constraints

What is the maximum supported embedding dimension?

Amazon S3 Vectors supports vectors up to 4,096 dimensions. All popular embedding models fall well within this ceiling, including 384-d (MiniLM), 768-d (BGE-base, Gemini), 1024-d (Voyage, BGE-large), 1536-d (OpenAI small / ada-002), and 3072-d (OpenAI large). See Embedding Dimensions Guide for trade-offs.

What are the limits on metadata filtering?

dynavec uses a two-store hybrid model for metadata:

What is the maximum top_k query limit?

Amazon S3 Vectors returns up to 100 vectors per page and supports querying up to the service ceiling of 10,000 vectors per query via pagination. dynavec automatically handles nextToken pagination behind the scenes, and provides search_stream() to stream hydrated results progressively as each page arrives.

What are the batch limits for ingestion and reads?

DynamoDB processes up to 25 items per BatchWriteItem and 100 items per BatchGetItem. dynavec manages batch chunking, throttling retries, and parallel dispatch over a thread pool automatically — you can pass arbitrarily large lists of documents to db.upsert() or ingest().

Consistency & Latency

Why do newly upserted vectors not show up immediately in search results?

Amazon S3 Vectors is eventually consistent after ingestion. It typically takes a few seconds for new or modified vectors to be indexed and searchable via ANN vector queries. In contrast, document text and metadata written to DynamoDB are immediately accessible via key lookups.

When writing automated integration tests, insert a brief sleep (e.g. 3–5 seconds) after upsert before executing query assertions.

What query latency should I expect?

For end-to-end semantic searches (S3 Vectors ANN lookup + DynamoDB BatchGetItem document hydration):

Costs & Billing

How much does dynavec cost to run?

dynavec has no baseline idle cost and no fixed monthly cluster fees. You only pay standard AWS pay-as-you-go rates:

ComponentPricing Model
S3 VectorsVector storage (GB/month) + vector query and ingest PUT requests
DynamoDBOn-Demand Read/Write Request Units (RRUs/WRUs) + document storage

For a typical workload with 1M vectors (768-d) and 1M queries/month, total AWS infrastructure cost is approximately $3–$4/month — up to 50–200× cheaper than running dedicated clusters (e.g. OpenSearch, Qdrant, Milvus).

Are there data transfer fees between DynamoDB and S3 Vectors?

No. When your application and dynavec resources are in the same AWS region, all data transfer between S3 Vectors, DynamoDB, and your compute environment (Lambda, ECS, EC2) is free.

Security, Privacy & Architecture

Does my data ever leave my AWS account?

No. All documents, metadata, and vectors are stored inside your own AWS account's DynamoDB tables and S3 vector buckets. If you use BedrockEmbedder or SentenceTransformerEmbedder, embeddings are generated entirely within your AWS boundary or locally offline.

How does multi-tenancy work?

dynavec provides native Namespaces. A single S3 vector bucket and DynamoDB table can host many independent tenants. DynamoDB partition keys are cleanly isolated via escaped "{namespace}#{id}" prefixes, and vector queries are automatically scoped so data never leaks across namespaces.