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:
- Filterable metadata: Indexed directly in S3 Vectors for fast pre-filtering. Pass only the keys you need to filter on via
DynavecConfig(filterable_keys=[...])(e.g.["topic", "tenant_id", "year"]). - Document metadata & text: The complete payload is stored in DynamoDB, subject to DynamoDB's standard 400 KB per item limit. Oversized documents raise
ItemTooLargeErrorbefore anything is written (see Upsert).
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.
What query latency should I expect?
For end-to-end semantic searches (S3 Vectors ANN lookup + DynamoDB BatchGetItem document hydration):
- p50 latency: ~45 ms for warm queries.
- p95 latency: ~120 ms.
- Repeated queries: Sub-millisecond to low single-digit ms when using
SemanticCacheorRedisCache.
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:
| Component | Pricing Model |
|---|---|
| S3 Vectors | Vector storage (GB/month) + vector query and ingest PUT requests |
| DynamoDB | On-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.