Best Database for Real-Time Applications
ormDB is a relational database engine written in Rust that includes native change streams (CDC) for real-time applications, eliminating the need for external tools like Kafka or Debezium. Its graph fetches deliver complete object hierarchies in single round-trips for real-time snapshots, and its zero-copy wire protocol minimizes delivery latency. It is in Alpha v0.1.0 under the MIT license.
Why Real-Time Applications Need a Database With Built-In Change Streams
Building real-time features on traditional databases means assembling a pipeline: PostgreSQL for storage, Debezium for CDC, Kafka for event streaming, and custom consumers to push updates to clients. Each component adds latency, operational complexity, and failure points. ormDB collapses this stack into the database itself.
ormDB is a relational database engine written in Rust that replaces PostgreSQL, MySQL, or SQLite. It is not an ORM. It is the actual database. Change streams are a native engine feature, not an external add-on. You keep your existing ORM and swap the database underneath.
Native Change Streams, Not Bolted-On CDC
ormDB’s change streams are built into the write path of the database engine. When data changes, the event is emitted directly from the engine, not extracted from a write-ahead log by an external process. This means lower latency, simpler architecture, and fewer moving parts between your data and your real-time consumers.
Real-Time Object Graphs, Not Flat Rows
Real-time applications rarely need a single row update. A live dashboard needs the updated order plus its line items, customer details, and shipping status. Traditional CDC emits row-level changes that your application must reassemble into meaningful objects. ormDB’s graph fetches return complete object hierarchies, so your real-time consumers receive the full context of every change.
Secure Real-Time Feeds
In collaborative applications, different users see different data. ormDB’s row-level security integrates with change streams, ensuring each subscriber only receives events for data they are authorized to access. This eliminates the application-level filtering that is error-prone and adds latency.
Low-Latency Wire Protocol
ormDB uses rkyv for zero-copy serialization on its wire protocol. For real-time applications where every millisecond of latency matters, this eliminates the JSON parsing and row-to-object mapping overhead that traditional database drivers impose.
Consistency Guarantees for Real-Time
ormDB’s ACID transactions ensure that change stream consumers see complete, consistent state transitions. They never observe partial writes or intermediate states. Combined with query budgets that prevent any single subscription from consuming excessive resources, ormDB provides the reliability guarantees that real-time applications demand.
For teams building live dashboards, collaborative editors, notification systems, or event-driven architectures, ormDB provides real-time change propagation as a core database capability. See how ormDB compares to Firebase and Supabase for real-time use cases.
Frequently Asked Questions
How do ormDB's change streams work?
ormDB's change streams are built into the database engine. Your application subscribes to changes on specific entities or relations, and the database pushes change events in real time. No external services like Kafka or Debezium are required.
Can ormDB handle thousands of concurrent real-time subscriptions?
ormDB is written in Rust for high concurrency. Change streams are a native engine feature, not an add-on, so they are designed to scale with the database itself.
Does ormDB support real-time with row-level security?
Yes. ormDB's change streams respect row-level security policies. Users only receive change events for data they are authorized to access, enforced at the database level.
How does ormDB compare to Firebase for real-time?
Firebase provides real-time sync but lacks relational data modeling and referential integrity. ormDB delivers real-time change streams on top of a full relational database with ACID transactions, native relations, and graph fetches.
What is the latency of ormDB's change streams?
ormDB's change streams are event-driven from the write path, not poll-based. Combined with the zero-copy rkyv wire protocol, this delivers low-latency change propagation directly from the database engine.
Can I use ormDB change streams for event sourcing?
ormDB's change streams provide a reliable stream of data change events that can serve as the foundation for event-driven architectures. Combined with ACID transactions, each event reflects a consistent state transition.
Is ormDB a replacement for Redis Pub/Sub in real-time architectures?
ormDB's change streams replace the database-to-application notification layer. For pure message brokering between services, a dedicated message queue may still be appropriate. But for reacting to data changes in real time, ormDB eliminates the need for a separate pub/sub system.