What exactly is EventStoreDB? What makes it different from other operational databases?
To answer this in a nutshell, EventStoreDB is an event based state transition database. It goes beyond traditional databases that store just the current state of your data; it retains the who, why and when of each state change.
State changes are the most fundamental unit of data; from these, you can build up whatever use of data is needed - both now and in the future. Learn more about event based state transition and what makes EventStoreDB different in this webinar and this blog.
Now you know more about what EventStoreDB actually is, let’s explore its main features and how they can benefit you.
Guaranteed writes as your source of truth
When you append data (events) into EventStoreDB, they are stored as a reliable log of the changes in your application. The change itself is stored as well as the context of the change. These changes represent a core asset of your business and can be streamed, replayed, and transformed into whatever shape you need.
EventStoreDB has been architected from the ground up as an operational database for your enterprise’s source of record/source of truth data. It assures your events are written to disk (and a quorum of follow nodes have as well) before returning successfully. As a database technology that has been running high value production workloads for over 10 years, securing and assuring data integrity is key a key aspect of EventStoreDB’s value proposition.
High availability: access what you need, when you need it
Maintain continuous and uninterrupted access to your data even in the presence of node failures or network partitions in EventStoreDB by clustering; this is where the database operates as a cluster of nodes, with replication mechanisms syncronizing events across the cluster so each node contains a copy of the same event. This ensures data redundancy and fault tolerance.
For append operations, your data will remain available provided at least half of the nodes in your cluster are alive and connected. For read operations, EventStoreDB will continue to serve requests as long as a single node is available. As such, even if some nodes fail, you’ll still get continuous data access. Providing this type of uptime is key for modern, global operational systems needing to operate 24X7 access.
The power of projections
Projections in EventStoreDB provide a powerful toolset so you can set up queries that react to events as they are written, plus filter and transform data from one more streams into new streams. Often, projections are used to transform lower level events (e.g. an order line item is added or changed) to higher level, course grain event (e.g. an order is now complete). The resulting streams can be used in other projections, creating a real time pipeline capability for processing events.
As such, you can build sophisticated, event-driven systems with real-time data processing and analytics capabilities, without the need to directly modify source data. You’ll also gain new, meaningful data representations from your event streams, facilitating more informed decision-making and insights into your application’s behaviour.
A concurrency model
In EventStoreDB, optimistic concurrency checks are performed by the server to maintain data consistency when multiple clients attempt to write events to the same stream concurrently.
It does this through versioning; each stream has a version number. With optimistic concurrency, the client assumes that the stream’s version it last read is still corresponding when writing new events. This is specified as part of the append request and the client expects the stream’s version to match what’s provided.
When multiple clients are appending events to the same stream, the server processes the requests in the order they are received. If the expected version doesn’t match the current version of the stream, the server will detect a concurrency conflict. In this instance, an exception will be returned to the client to handle how to proceed.
Managing streams this way avoids unintended data overwrites, maintaining data consistency and integrity in the event stream.
Performance that scales
EventStoreDB helps with performance and scalability in multiple ways. First and foremost, applications written on EventStoreDB are architected by default to write the minimum amount of information synchronously (the part you have to wait for) and querying/reading asynchronously. Write can be optimized separately than reads improving the scalability characteristics of most systems.
From a pure log performance perspective, EventStoreDB is designed to deliver high performance and efficiency - even under demanding workloads and as data volumes increase. The performance of EventStoreDB can be fine-tuned through configuration settings to optimise its behaviour for your specific use case and hardware setups.
Maintaining this performance is crucial for complex event sourcing systems, with the continuous generation of events and the need to capture state changes. Moreover, as businesses increasingly require real-time data and analytics, you can be certain that EventStoreDB can support you.
Choose a deployment method that aligns with your infrastructure
As an open source technology, EventStoreDB can be deployed:
- In your production environment and managed by you or
- In Event Store Cloud, where our expert team will manage your clusters for you, so you can concentrate on building exceptionional software t
Event Store Cloud allows you to take advantage of the operational best practices that have evolved managing ESDB as well as take advantage of the latest features across the cloud and database feature set as they emerge.
Work in your preferred language
Support when you need it
Multi-tiered support plans with response times to fit your needs are available, so you can access dedicated assistance and additional tools to ensure the smooth operation of your EventStoreDB instances.
This is critical for mission-critical applications, enterprise use cases, and projects that require a high level of confidence in the reliability of the database.
Learn more about support.
Harness the true power of event driven architecture with Event Store