---
title: Event Store
---

Chronicle offers what is called an event store which basically means a special purpose database
for storing events. The events are stored in [event sequences](/chronicle/concepts/event-sequence/).

In addition to this, the Chronicle event store also maintains information about things like the
[event types](/chronicle/concepts/event-type/), [observers](/chronicle/concepts/observers/), [projections](/chronicle/concepts/projection/) and more.

The Chronicle event store is built on top of [MongoDB](https://mongodb.com). In a production environment
you have to bring your own MongoDB environment and configure Chronicle to work with it. For local development,
Chronicle provides a development Docker image that comes with MongoDB bundled inside it.

```mermaid
flowchart TB
    App["Your application"] -->|append · read| ES
    subgraph ES["Event store"]
        direction LR
        subgraph NS1["Default namespace"]
            S1["event sequences<br/>(the event log)"]
        end
        subgraph NS2["tenant-a namespace"]
            S2["event sequences"]
        end
        Meta["also tracks: event types ·<br/>observers · projections · …"]
    end
    ES --> Mongo[("MongoDB")]
```

## Namespaces

Every event store can have [namespaces](/chronicle/concepts/namespaces/). The namespaces provides a way to segregate data that is specific for
a partition. Typically, a namespace can be used for multi-tenancy.

By default, Chronicle will use the **Default** namespace if a namespace is not provided.
