ormDB vs DynamoDB
ormDB is a relational database engine written in Rust with native graph-fetch queries, ACID transactions, and built-in vector/geo/full-text search, designed for ORM workloads. DynamoDB is AWS's key-value NoSQL service offering virtually unlimited horizontal scaling with single-digit millisecond latency. ormDB models data relationally without single-table design; DynamoDB excels at predefined access patterns at massive scale.
Verdict: ormDB is a relational engine with graph query DX for ORM workloads; DynamoDB is AWS's key-value NoSQL service built for massive scale.
ormDB strengths
- Native graph-fetch queries for complex relational data
- Relational model with ACID transactions and referential integrity
- No single-table design gymnastics -- model data naturally
- Built-in vector search, geo search, and full-text search
- Self-hosted with full data ownership -- no AWS dependency
DynamoDB strengths
- Virtually unlimited horizontal scaling with single-digit millisecond latency
- Fully managed by AWS with zero operational overhead
- Predictable pricing with on-demand and provisioned capacity
- Global tables for multi-region active-active replication
- Deep integration with the AWS ecosystem (Lambda, IAM, CloudWatch)
Overview
ormDB is a relational database engine written in Rust that replaces key-value stores like DynamoDB with a relational engine that speaks graph queries. DynamoDB is AWS’s fully managed NoSQL database designed for virtually unlimited scale with single-digit millisecond latency.
These databases represent fundamentally different philosophies. DynamoDB asks you to design your data around access patterns. ormDB asks you to model your data naturally and lets the database figure out how to query it efficiently.
Data Modeling
DynamoDB uses a key-value model with optional secondary indexes. The recommended approach — single-table design — stores multiple entity types in one table with carefully crafted partition and sort keys. This requires knowing your access patterns upfront and makes ad-hoc queries difficult.
ormDB uses a relational model with entities and relations. You model users, orders, and products as separate entities with explicit relationships following proven schema design patterns. Graph-fetch queries traverse these relationships in a single round-trip. No partition key design. No access pattern pre-planning.
Querying
DynamoDB queries are limited to partition key lookups, sort key conditions, and scans. Joining data across entities requires multiple queries and application-side assembly, or denormalization.
ormDB resolves entire object graphs internally. Request a user with their orders, items, and reviews, and ormDB returns the complete graph in one round-trip. The database does the traversal, not your application.
Transactions
DynamoDB added transactions but with constraints: 100 items maximum per transaction, 4MB size limit, and roughly double the cost of standard operations. ormDB provides full ACID transactions without item limits or size constraints. Combined with row-level security, ormDB provides enterprise-grade data governance.
Scale and Operations
DynamoDB’s core strength is scale. It handles trillions of requests per day with consistent single-digit millisecond latency. It is fully managed — no servers, no patches, no capacity planning (with on-demand mode).
ormDB is self-hosted and currently single-node. You manage the infrastructure. For massive-scale workloads, DynamoDB is the proven choice.
Search Capabilities
DynamoDB does not include full-text search, vector search, or geo search. These require additional AWS services (OpenSearch, Kendra, Location Service).
ormDB builds vector search, geo search, full-text search, and change streams directly into the engine. One database, no extra services.
When to Choose
Choose ormDB when your data is relational, you use an ORM like Prisma or Django, and you want natural data modeling with graph queries. Choose DynamoDB when you need virtually unlimited scale, zero ops, and your access patterns are well-defined and key-value oriented.
Feature Comparison
| Feature | ormDB | DynamoDB |
|---|---|---|
| Native Graph Queries | Yes | No |
| ACID Transactions | Yes | Partial |
| Referential Integrity | Yes | No |
| N+1 Elimination | Yes | N/A |
| Horizontal Scaling | Planned | Yes |
| Change Streams (CDC) | Yes | Yes |
| Vector Search | Yes | No |
| Full-Text Search | Yes | No |
| Geo Search | Yes | No |
| Global Replication | Planned | Yes |
| Row-Level Security | Yes | Partial |
| Safe Migration Grading | Yes | N/A |
Choose ormDB when
- → Your data is relational and you want the database to enforce integrity
- → You use an ORM and want native graph queries instead of key-value patterns
- → Single-table design and access pattern pre-planning feel like unnecessary complexity
- → You need vector search, full-text search, or geo search alongside relational data
- → You want data ownership without AWS lock-in
Choose DynamoDB when
- → You need virtually unlimited scale with single-digit millisecond latency
- → Your data access patterns are well-defined and key-value oriented
- → You want a fully managed, zero-ops database from AWS
- → You need global active-active replication across AWS regions
- → Your infrastructure is deeply integrated with AWS services
Frequently Asked Questions
Can I use an ORM with DynamoDB?
DynamoDB is a key-value/document store. ORMs that target relational databases do not work with DynamoDB. ormDB works with Prisma, Drizzle, TypeORM, Sequelize, Kysely, SQLAlchemy, and Django because it is a relational engine.
What is single-table design?
DynamoDB encourages storing multiple entity types in one table with carefully designed partition and sort keys. This optimizes read patterns but requires upfront access pattern planning. ormDB lets you model entities naturally with relations.
Does ormDB scale like DynamoDB?
No. DynamoDB scales virtually without limits. ormDB is currently a single-node database in Alpha v0.1.0. For workloads requiring massive scale, DynamoDB has a significant advantage.
Can I migrate from DynamoDB to ormDB?
Migration requires restructuring your data model from key-value patterns to relational entities. If your application already uses or wants to use an ORM, ormDB provides the natural data model.
Does DynamoDB support transactions?
DynamoDB supports transactions with limitations: up to 100 items per transaction, 4MB size limit, and higher cost. ormDB provides full ACID transactions without these constraints.
What about DynamoDB Streams?
DynamoDB Streams provides CDC for DynamoDB tables. ormDB provides built-in change streams. Both enable event-driven architectures, but ormDB's streams work on relational data with graph awareness.
Is ormDB cheaper than DynamoDB?
ormDB is MIT-licensed and self-hosted, so you pay only for infrastructure. DynamoDB charges for read/write capacity and storage. Cost depends on your workload and scale.