apps/docs/content/concepts/eventstore/overview.mdx
ZITADEL is built on the Event Sourcing pattern, where changes are stored as events in an Event Store.
Traditionally, data is stored in relations as a state
An Event Store on the other hand stores events, meaning every change that happens to any piece of data relates to an event. The data is stored as events in an append-only log.
Event Sourcing has some specific terms that are often used in our documentation. To understand how ZITADEL works it is important to understand this key definitions.
An event is something that happens in the system and gets written to the database. This is the single source of truth. Events are immutable and the current state of your system is derived from the events.
Possible Events:
An aggregate consist of multiple events. All events together from an aggregate will lead to the current state of the aggregate. The aggregate can be compared with an object or a resources. An aggregates should be used as transaction boundary.
Projections contain the computed objects, that will be used on the query side for all the requests. Think of this as a normalized view of specific events of one or multiple aggregates.