Release Notes: v0.9.0¶
Release Date: 2026-06-28
Summary¶
This release adds the OmniMemory DynamoDB provider, bringing serverless memory storage capabilities to the omni-aws ecosystem. The provider enables multi-tenant memory management with automatic scaling, TTL support, and efficient tenant isolation using DynamoDB's single-table design pattern.
Highlights¶
- DynamoDB provider for omnimemory with full Provider interface implementation
- Multi-tenant isolation using partition keys (tenant_id) and composite sort keys (subject_id#memory_id)
- Automatic memory expiration via DynamoDB TTL
- In-memory vector search with cosine similarity for semantic queries
- Auto-create table option for simplified development workflows
- DynamoDB Local support for local development without AWS costs
What's New¶
Features¶
OmniMemory DynamoDB Provider¶
The new DynamoDB provider implements the omnimemory.Provider interface for serverless, scalable memory storage:
import (
"github.com/plexusone/omnimemory"
"github.com/plexusone/omnimemory/core"
_ "github.com/plexusone/omni-aws/omnimemory/dynamodb"
)
client, err := omnimemory.NewClient(core.ClientConfig{
Providers: []core.ProviderConfig{
{
Name: core.ProviderNameAWSDynamoDB,
Options: map[string]any{
"table_name": "omnimemory",
"region": "us-east-1",
},
},
},
})
Key capabilities:
- Serverless Storage: Fully managed DynamoDB backend with pay-per-request billing
- Multi-Tenant Isolation: Partition key based isolation ensures complete data separation between tenants
- Automatic TTL: Built-in support for memory expiration using DynamoDB's TTL feature
- Vector Search: In-memory cosine similarity search for semantic memory retrieval
- Development Mode: Auto-create table option and DynamoDB Local support for development
Single-Table Design¶
Optimized table schema for efficient queries and tenant isolation:
- Partition Key (pk):
tenant_id- isolates data by tenant - Sort Key (sk):
subject_id#memory_id- enables efficient subject-based queries - TTL Attribute:
expires_at- automatic memory expiration
Additional attributes include memory type, scope, content, embeddings, metadata, and timestamps.
Local Development Support¶
DynamoDB Local integration for development without AWS:
client, err := omnimemory.NewClient(core.ClientConfig{
Providers: []core.ProviderConfig{
{
Name: core.ProviderNameAWSDynamoDB,
Options: map[string]any{
"table_name": "omnimemory",
"endpoint": "http://localhost:8000",
"create_table": true,
},
},
},
})
Documentation¶
Comprehensive documentation for the DynamoDB provider includes:
- Installation and basic usage examples
- Configuration options and table schema details
- Local development setup with DynamoDB Local
- IAM permissions (minimal and with auto-create)
- All CRUD operations (Add, Get, Update, Delete, List, Search, Recall)
- Multi-tenancy explanation and examples
- Semantic search implementation details
See docs/omnimemory/index.md for complete documentation.
Installation¶
Migration Guide¶
From v0.8.2¶
No breaking changes. This is a purely additive release introducing the new OmniMemory package.
To use the DynamoDB provider:
-
Import the provider package (blank import for auto-registration):
-
Configure the provider:
-
Ensure IAM permissions for DynamoDB operations (see documentation for details)
Full Changelog¶
See CHANGELOG.md for the complete list of changes.