diff --git a/docs/install/store.md b/docs/install/store.md index bbdcdb4..8305c4e 100644 --- a/docs/install/store.md +++ b/docs/install/store.md @@ -11,9 +11,11 @@ Stalwart employs a modular storage architecture that separates different types o - To support efficient search operations, Stalwart also utilizes a [Full-text Search Store](/docs/storage/fts), which maintains indexes to speed up text-based queries across message content. - Finally, the [In-memory Store](/docs/storage/in-memory) handles ephemeral key-value data used by security, clustering, and anti-spam components, including rate limiting, distributed locks, Bayesian models, sender reputation scores, and message interaction tracking. -In simple or single-node setups, it is entirely feasible to consolidate these roles into a single storage backend. For example, databases such as **RocksDB** or **PostgreSQL** can be configured to serve as the data store, blob store, full-text search store, and even in-memory store. It is common to see lightweight deployments where RocksDB is used exclusively for all four functions, simplifying management and reducing infrastructure complexity. +In simple or single-node setups, it is entirely feasible to consolidate these roles into a single storage backend. For example, databases such as **RocksDB** or **PostgreSQL** can be configured to serve as the data store, blob store, full-text search store, and even in-memory store. It is common to see lightweight deployments where RocksDB is used exclusively for all four functions, simplifying management and reducing infrastructure complexity. -However, for larger deployments—particularly those running in [distributed environments](/docs/cluster/overview)—it is advisable to assign each storage role to a backend that is specifically designed for that purpose. A more scalable and robust configuration might involve **FoundationDB** as the data store, an **S3-compatible service** for blob storage, **Redis** for handling volatile in-memory data, and a dedicated search engine such as **Elasticsearch** or **Meilisearch** for full-text indexing. +Should you decide to use PostrgreSQL instead of the default RocksDB, you'll need to add a user and a [database schema](/docs/auth/backend/sql/#postgresql). + +However, for larger deployments—particularly those running in [distributed environments](/docs/cluster/overview)—it is advisable to assign each storage role to a backend that is fit for purpose. A more scalable and robust configuration might involve **FoundationDB** as the data store, an **S3-compatible service** for blob storage, **Redis** for handling volatile in-memory data, and a dedicated search engine such as **Elasticsearch** or **Meilisearch** for full-text indexing. Selecting the right combination of databases will depend on the performance requirements, fault tolerance expectations, and operational constraints of the deployment. Stalwart’s flexible architecture ensures that it can scale from compact single-server setups to complex multi-node clusters with specialized infrastructure for each storage layer.