Why use EventStoreDB?
EventStoreDB is an open-source database technology that stores your critical data in streams of immutable events. It was built from the ground up for Event Sourcing, we believe that makes it the best solution in the market for building event-sourced systems. Event Sourcing offers some great benefits over state-oriented systems; the key ones are explained below.
EventStoreDB stores your data as a series of immutable events over time, providing one of the strongest audit log options available (characteristics similar to a blockchain)
All state changes are kept, so it is possible to move systems backward and forwards in time which is extremely valuable for debugging and “what if” analysis
Event streams are fundamentally just logs with strong backup and recovery characteristics, writing just the core “source of record” data to the event stream enables the rebuilding of the downstream projections. EventStoreDB itself is also a distributed database technology with failover if a leader fails
What is Event Sourcing?
Event Sourcing is an alternative way to persist data in which all changes in a system are stored as an immutable series of events in the order that they occurred. The current state is derived from that event log.
This contrasts with state-oriented persistence that only keeps the latest version of the entity state; when changes occur in "traditional" database systems, the state is updated and the history, along with the reason for the change, is lost.
In event-sourced systems, whenever an action occurs that changes the state of a business entity (for example an order is marked as shipped), the system will publish an event to the stream describing what has happened (as per the example, the event might be
OrderShipped). In EventStoreDB, additional metadata can also be stored in each event such as a timestamp, what action caused the event, and who performed that action.
The stream (or streams: EventStoreDB allows you to define and create many streams as required for your domain model) comprises a log of all events that have occurred, and by replaying them the current state can be derived. That can output the same end-result as in a traditional database, but it can also provide much more; you can perform additional tasks such as time travelling through the system and root cause analysis. And being immutable it provides one of the strongest methods for audit log available.
EventStoreDB's core database server is used in production systems worldwide. The core features make it the ideal database choice for building event-sourced systems. It’s available as open-source software so it’s free to use. And with our tutorials it’s easy to get started: you’ll have a demo application to write and read events in minutes.
Multiple client interfaces
Great performance that scales
Immutable data store
Optimistic concurrency checks
Multiple hosting options
Subscribe to streams with competing consumers
Commercial support plans
It’s easy to get started with EventStoreDB.
If you are a new user, follow our getting started guide for step-by-step instructions on downloading and installing EventStoreDB, and writing sample applications to write and read events.
If you know the basics but want to know more, check out our tutorials for in-depth guides on specific features or use cases of EventStoreDB, our docs section for technical documentation, or head over to the community forum where we have an active community of users.