Skip to main content

Concepts

The Concepts section explains various aspects related to Weaviate and its architecture to help you get the most out of it. You can read these sections in any order.

info

If you are after a practical guide, try the quickstart tutorial.

Core concepts

Data structure

  • How Weaviate deals with data objects, including how they are stored, represented, and linked to each other.

Modules

  • An overview of Weaviate's module system, including what can be done with modules, existing module types, and custom modules.

Indexing

  • Read how data is indexed within Weaviate using inverted and ANN indices, and about configurable settings.

Vector indexing

  • Read more about Weaviate's vector indexing architecture, such as the HNSW algorithm, distance metrics, and configurable settings.

Vector quantization

  • Read more about Weaviate's vector quantization options.

Weaviate Architecture

The figure below gives a 30,000 feet view of Weaviate's architecture.

Weaviate module APIs overview

You can learn more about the individual components in this figure by following these guides:

Learn about storage inside a shard

  • How Weaviate stores data
  • How Weaviate makes writes durable
  • How an inverted index, a vector index and an object store interact with each other

Ways to scale Weaviate horizontally

  • Different motivations to scale
  • Sharding vs. Replication
  • Configuring a cluster
  • Consistency

How to plan resources

  • The roles of CPU, Memory and GPUs
  • How to size a cluster correctly
  • Speeding up specific processes
  • Preventing bottlenecks

Filtered vector search

  • Combine vector search with filters
  • Learn how combining an HNSW with an inverted index leads to high-recall, high-speed filtered queries

User-facing interfaces

  • Design philosophy behind user-facing APIs
  • Role of the REST and GraphQL APIs

Replication architecture

  • About replication
  • Weaviate's implementation
  • Use cases

Questions and feedback

If you have any questions or feedback, please let us know on our forum. For example, you can: