# RavenDB — ACID Document Database with Built-In Search > RavenDB is a fully transactional NoSQL document database with built-in full-text search, distributed clustering, and multi-model support for documents, counters, time series, and attachments. ## Install Save in your project root: # RavenDB — ACID Document Database with Built-In Search ## Quick Use ```bash # Docker docker run -d -p 8080:8080 -p 38888:38888 -e RAVEN_Setup_Mode=None -e RAVEN_Security_UnsecuredAccessAllowed=PrivateNetwork ravendb/ravendb ``` ## Introduction RavenDB is a document database that combines ACID transactions with the flexibility of a schema-free data model. It includes a built-in search engine based on Lucene/Corax, automatic indexing, and multi-node clustering without requiring external tools. ## What RavenDB Does - Stores JSON documents with ACID transactions including multi-document operations - Automatically creates indexes based on query patterns - Provides built-in full-text search without external search engines - Supports distributed clusters with automatic failover and conflict resolution - Handles attachments, counters, time series, and graph queries natively ## Architecture Overview RavenDB uses a master-master replication model where every node in a cluster can accept writes. Conflicts are resolved automatically using configurable strategies or custom scripts. The storage engine (Voron) is a copy-on-write B+tree optimized for SSDs with ACID guarantees. Indexes run asynchronously on background threads using a Lucene-derived engine called Corax, keeping write latency low while maintaining query performance. ## Self-Hosting & Configuration - Deploy via Docker, DEB/RPM packages, or direct binary download for Linux, Windows, or macOS - Access the Studio web UI at port 8080 for database management and query development - Configure cluster topology by adding nodes through the Studio or REST API - Set up TLS certificates for production deployments via the built-in setup wizard - Enable external replication or ETL to sync data with other databases or services ## Key Features - ACID transactions across multiple documents and collections in a single cluster - Auto-indexing analyzes query patterns and creates indexes without manual DDL - Built-in Lucene/Corax search engine eliminates the need for a separate search service - Multi-model: documents, key-value, counters, time series, attachments, and graph queries - Studio web UI provides a visual query builder, index management, and cluster monitoring ## Comparison with Similar Tools - **MongoDB** — eventually consistent by default; RavenDB provides ACID multi-document transactions - **Elasticsearch** — search-focused with limited transactional guarantees; RavenDB combines both - **CouchDB** — HTTP-based with eventual consistency; RavenDB offers stronger consistency and auto-indexing - **FerretDB** — MongoDB-compatible on PostgreSQL; RavenDB is a purpose-built engine with native search - **ArangoDB** — multi-model with graph focus; RavenDB emphasizes ACID guarantees and auto-indexing ## FAQ **Q: Is RavenDB open source?** A: RavenDB Community Edition is open source under the AGPLv3 license. Commercial licenses are available for proprietary deployments. **Q: How does auto-indexing work?** A: When a query arrives without a matching index, RavenDB creates one automatically based on the query pattern. The index builds in the background while the query returns results from a temporary scan. **Q: Does RavenDB support SQL-like queries?** A: RavenDB uses RQL (Raven Query Language), a SQL-like language tailored for document queries. It supports projections, filtering, grouping, and full-text search predicates. **Q: What happens during a network partition?** A: RavenDB uses a consensus protocol for cluster operations. During a partition, nodes that maintain quorum continue accepting writes; isolated nodes queue changes for reconciliation. ## Sources - https://github.com/ravendb/ravendb - https://ravendb.net/docs --- Source: https://tokrepo.com/en/workflows/asset-db1dd463 Author: AI Open Source