Managing a vector database on AWS is expensive and time-consuming
SvectorDB is the service AWS should have built. A truly serverless vector database, and significantly more cost-effective
The Existing Options
OpenSearch
AWS's open source fork of ElasticSearch
RDS
Managed SQL service with Aurora, MySQL, and PostgreSQL
MemoryDB
Redis-like service designed for persistence
DocumentDB
MongoDB-compatible document database
| Service | Scales to zero | Pay per request | Managed | Consistency | Minimum cost |
|---|---|---|---|---|---|
| OpenSearch | Eventual | $76.65 / month | |||
| OpenSearch "Serverless" | Eventual | $700 / month | |||
| RDS | Eventual / Immediate | $211.7 / month | |||
| MemoryDB | Eventual / Immediate | $225.57 / month | |||
| DocumentDB | Eventual | $191.99 / month |
* Minimum cost is based on a single instance of the smallest non-burstable (t2/t3/t4) size available
There's no serverless options
For vector databases on AWS, you're forced to choose between expensive managed services or self-managed solutions. There's no Lambda or DynamoDB-like solutions
What SvectorDB does differently
Scales to zero
Only pay for what you use, with no minimum fees or upfront costsPay per request
Predictable pricing, based on the number of requests you makeManaged
No need to worry about scaling, provisioning or maintenanceImmediate consistency
Changes are reflected instantly, no more bad user experienceIt's built specifically to work with AWS
Native CloudFormation support, built to integrate seamlessly with your existing AWS infrastructure
- CloudFormation
- CDK
Resources:
VectorDb:
Type: SvectorDB::VectorDatabase::Database
Properties:
IntegrationId: <INTEGRATION_KEY> # Replace with your integration key
Name: My first database
Metric: EUCLIDEAN
Dimension: 1024
Type: SANDBOX
ApiKey:
Type: SvectorDB::VectorDatabase::ApiKey
Properties:
IntegrationId: <INTEGRATION_KEY> # Replace with your integration key
DatabaseId: !Ref VectorDb
MyLambdaFunction:
Type: AWS::Lambda::Function
Properties:
Handler: ...
Role: ...
Code: ...
Runtime: ...
Environment:
Variables:
SVECTORDB_API_KEY: !Ref ApiKey
const database = new cdk.CfnResource(this, 'SvectorDatabase', {
type: 'SvectorDB::VectorDatabase::Database',
properties: {
IntegrationId: '...', // Replace with your integration key
Name: 'My first database',
Metric: 'EUCLIDEAN',
Dimension: 1024,
Type: 'SANDBOX'
}
});
const apiKey = new cdk.CfnResource(this, 'SvectorDatabaseApiKey', {
type: 'SvectorDB::VectorDatabase::ApiKey',
properties: {
IntegrationId: '...', // Replace with your integration key
DatabaseId: database.ref
}
});
const lambdaFunction = new lambda.Function(this, 'MyLambdaFunction', {
handler: '...',
role: '...',
code: '...',
runtime: '...',
environment: {
SVECTORDB_API_KEY: apiKey.ref
}
});
Our SDKs are all generated using Smithy. If you're familiar with AWS SDKs, you'll feel right at home
- JavaScript
- Python
- OpenAPI / Other
// Create or update an item
client.setItem({
databaseId,
key: 'abc',
value: Buffer.from('Hello world!'),
vector: [0.1, 0.1, 0.1, 0.1],
metadata: {
'title': {string: 'Backend Developer'},
'tags': {stringArray: ['backend', 'javascript']},
'salary': {number: 25000}
}
});
// Query based on a vector
client.query({
databaseId,
query: {
vector: [0.5, 0.5, 0.5, 0.5]
},
filter: 'salary:>12000'
});
// Query based on key (nearest to existing vector)
client.query({
databaseId,
query: {
key: 'abc'
},
filter: 'tags:javascript'
});
# Create or update an item
client.set_item(SetItemInput(
database_id=databaseId,
key="abc",
value="Hello world!".encode(),
vector=[0.1, 0.1, 0.1, 0.1],
metadata={
'title': MetadataValueString(value='Backend Developer'),
'tags': MetadataValueStringArray(value=['backend', 'javascript']),
'salary': MetadataValueNumber(value=25000)
}
))
# Query based on a vector
client.query(QueryInput(
database_id=databaseId,
query=QueryTypeVector([0.5, 0.5, 0.5, 0.5]),
filter='salary:>12000'
))
# Query based on key (nearest to existing vector)
client.query(QueryInput(
database_id=databaseId,
query=QueryTypeKey("abc"),
filter='tags:javascript'
))
SvectorDB has an official OpenAPI specification, allowing you to use any language you like.
Visit our supported clients section to get started.
The benefits
Metadata Filtering
Use Lucene / ElasticSearch style queries to filter results based on key-value pairs
Instant updates
Upserts and deletions are reflected instantly, no need to worry about eventual consistency
Natively Serverless
Pay per request based pricing, with no provisioning or scaling required
CloudFormation Support
Integrate SvectorDB into your existing CloudFormation templates
Built-in Vectorizers
Use our built-in vectorizers for text and images, or bring your own embeddings
Pay per request
Only pay for the requests you make, with no minimum fees or upfront costs
The drawbacks
We're a micro start-up, and our philosophy centers around transparency. When you reach out to us, you're talking to the people who built the product, not navigating through layers of support agents. In the spirit of transparency, our weaknesses:
Snapshots
While we maintain our own internal backups to protect against data loss, we do not offer the ability to create snapshots of your databases.
Max record limits
To ensure consistent performance, we have a default limit of 1 million records per database. This limit can only be increased by contacting support.
Company Size
We're a micro start-up, while we consider it a benefit as we're hyper-responsive to customers needs, it may be a concern for some customers.
Performance
Wikipedia Embeddings
1 million
vectors
768
dimensions
9ms
query latency (average)
97.4%
recall @ 32
Use Cases
Recommendation Engines
Using vectors to represent items and users, recommendation engines leverage vector similarity to suggest relevant items to users based on their preferences.
Document / Image Search
Transforming documents and images into vectors enables deep meaningful search capabilities by leveraging semantic and visual similarities.
Retrieval Augmented Generation
Augmenting generative models with context enhances the quality of generated content, presenting a more refined and contextually relevant output.
Pricing
Storage
$0.25 / GB / month
The total size of your database and indexes, including keys, value, and vectors.
Queries
$5 / million
A single query counts as 1 read operation, regardless of the number of results returned or data scanned.
Writes
$20 / million
A single put or delete call counts as 1 write operation, regardless of the size of the item.
Free Tier
5k records
Create up to 10 free tier indexes of up to 5k records, with no time limit.
Price Comparison Calculator
Queries per month
Writes per month
Vector Dimension
Vectors Stored
SvectorDB
$7.25/m

Pinecone
$83.44/m
SvectorDB calculations
| Feature | Amount | Units | Cost | Total |
|---|---|---|---|---|
| Queries | 1m | 1 Read Operation | $5 / million | $5.00 |
| Writes | 100k | 1 Write Operation | $20 / million | $2.00 |
| Storage | 500k vectors | ~1.018 GB | $0.25 / GB | $0.25 |
| $7.25 |
Pinecone calculations
| Feature | Amount | Units | Cost | Total |
|---|---|---|---|---|
| Queries* | 1m | 10 Read Units | $8.25 / million | $82.50 |
| Writes | 100k | 3 Write Units | $2.00 / million | $0.60 |
| Storage | 500k vectors | ~1.018 GB | $0.33 / GB | $0.34 |
| $83.44 |
* Fetching 32 nearest neighbours and returning metadata
Ready for the database AWS should have built?