# mongodb/mongo architecture

> Architecture diagram of the GitHub repository mongodb/mongo, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mongodb/mongo
- Repository: https://github.com/mongodb/mongo

## Overview

MongoDB is a database server (`mongod`) with a sharding router (`mongos`). The README’s user workflow is a client connecting to a running server; it also describes a single-server setup. Sampled source shows internal query-settings management, hybrid-search pipeline construction, query-analysis command execution, and oplog visibility coordination. The source excerpts do not establish the full request-routing or query-execution path, so those connections are not expanded here. Some nodes represent broader runtime subsystems supported by the repository tree, not inspected implementation details.

Main entry points: [`src/mongo/db/query/query_settings/query_settings_service.cpp`](https://github.com/mongodb/mongo/blob/master/src/mongo/db/query/query_settings/query_settings_service.cpp) (Query settings service), [`src/mongo/db/storage/storage_oplog_manager.cpp`](https://github.com/mongodb/mongo/blob/master/src/mongo/db/storage/storage_oplog_manager.cpp) (Oplog visibility), [`src/mongo/s/query_analysis_client.cpp`](https://github.com/mongodb/mongo/blob/master/src/mongo/s/query_analysis_client.cpp) (Query analysis client), [`src/mongo/db/pipeline`](https://github.com/mongodb/mongo/tree/master/src/mongo/db/pipeline) (Aggregation pipelines)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Client entry"]
  node_mongod["Database server"]
  node_mongos["Sharding router"]
end

subgraph group_query["Query processing"]
  node_query_engine["Query execution"]
  node_pipeline["Aggregation pipelines"]
  node_hybrid_search["Hybrid search builder"]
  node_query_settings["Query settings service"]
end

subgraph group_cluster["Cluster services"]
  node_query_analysis["Query analysis client"]
  node_replication["Replication coordination"]
end

subgraph group_storage["Storage and primitives"]
  node_storage_engine["Storage engine"]
  node_oplog_manager["Oplog visibility"]
  node_record_store[("Record store<br/>[record_store.h]")]
  node_bson["BSON documents<br/>[bsonobj.h]"]
  node_bson_types["BSON types<br/>[bsontypes.h]"]
  node_logging["Structured logging<br/>[log.h]"]
  node_assertions["Error handling<br/>[assert_util.h]"]
end

node_client(("MongoDB client"))

node_client -->|"connects to"| node_mongod
node_client -.->|"routes through"| node_mongos
node_mongos -.->|"dispatches requests"| node_mongod
node_query_settings -->|"builds contexts"| node_pipeline
node_query_settings -->|"parses commands"| node_bson
node_hybrid_search -->|"constructs stages"| node_pipeline
node_query_analysis -->|"checks primary"| node_replication
node_query_analysis -->|"runs local commands"| node_mongod
node_oplog_manager -->|"reads oplog"| node_record_store
node_oplog_manager -->|"tracks visibility"| node_storage_engine
node_oplog_manager -->|"logs visibility"| node_logging
node_query_settings -->|"logs lookup failures"| node_logging

click node_query_engine "https://github.com/mongodb/mongo/tree/master/src/mongo/db/query"
click node_pipeline "https://github.com/mongodb/mongo/tree/master/src/mongo/db/pipeline"
click node_hybrid_search "https://github.com/mongodb/mongo/blob/master/src/mongo/db/pipeline/hybrid_search_pipeline_builder.cpp"
click node_query_settings "https://github.com/mongodb/mongo/blob/master/src/mongo/db/query/query_settings/query_settings_service.cpp"
click node_query_analysis "https://github.com/mongodb/mongo/blob/master/src/mongo/s/query_analysis_client.cpp"
click node_replication "https://github.com/mongodb/mongo/tree/master/src/mongo/db/repl"
click node_storage_engine "https://github.com/mongodb/mongo/tree/master/src/mongo/db/storage"
click node_oplog_manager "https://github.com/mongodb/mongo/blob/master/src/mongo/db/storage/storage_oplog_manager.cpp"
click node_record_store "https://github.com/mongodb/mongo/blob/master/src/mongo/db/storage/record_store.h"
click node_bson "https://github.com/mongodb/mongo/blob/master/src/mongo/bson/bsonobj.h"
click node_bson_types "https://github.com/mongodb/mongo/blob/master/src/mongo/bson/bsontypes.h"
click node_logging "https://github.com/mongodb/mongo/blob/master/src/mongo/logv2/log.h"
click node_assertions "https://github.com/mongodb/mongo/blob/master/src/mongo/util/assert_util.h"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_mongod,node_mongos,node_client toneBlue
class node_query_engine,node_pipeline,node_hybrid_search,node_query_settings toneAmber
class node_query_analysis,node_replication toneMint
class node_storage_engine,node_oplog_manager,node_record_store,node_bson,node_bson_types,node_logging,node_assertions toneRose
```

## Components

### Client entry

- **Database server**
- **Sharding router**

### Query processing

- [Query execution](https://github.com/mongodb/mongo/tree/master/src/mongo/db/query): `src/mongo/db/query`
- [Aggregation pipelines](https://github.com/mongodb/mongo/tree/master/src/mongo/db/pipeline): `src/mongo/db/pipeline`
- [Hybrid search builder](https://github.com/mongodb/mongo/blob/master/src/mongo/db/pipeline/hybrid_search_pipeline_builder.cpp): `src/mongo/db/pipeline/hybrid_search_pipeline_builder.cpp`
- [Query settings service](https://github.com/mongodb/mongo/blob/master/src/mongo/db/query/query_settings/query_settings_service.cpp): `src/mongo/db/query/query_settings/query_settings_service.cpp`

### Cluster services

- [Query analysis client](https://github.com/mongodb/mongo/blob/master/src/mongo/s/query_analysis_client.cpp): `src/mongo/s/query_analysis_client.cpp`
- [Replication coordination](https://github.com/mongodb/mongo/tree/master/src/mongo/db/repl): `src/mongo/db/repl`

### Storage and primitives

- [Storage engine](https://github.com/mongodb/mongo/tree/master/src/mongo/db/storage): `src/mongo/db/storage`
- [Oplog visibility](https://github.com/mongodb/mongo/blob/master/src/mongo/db/storage/storage_oplog_manager.cpp): `src/mongo/db/storage/storage_oplog_manager.cpp`
- [Record store](https://github.com/mongodb/mongo/blob/master/src/mongo/db/storage/record_store.h): `src/mongo/db/storage/record_store.h`
- [BSON documents](https://github.com/mongodb/mongo/blob/master/src/mongo/bson/bsonobj.h): `src/mongo/bson/bsonobj.h`
- [BSON types](https://github.com/mongodb/mongo/blob/master/src/mongo/bson/bsontypes.h): `src/mongo/bson/bsontypes.h`
- [Structured logging](https://github.com/mongodb/mongo/blob/master/src/mongo/logv2/log.h): `src/mongo/logv2/log.h`
- [Error handling](https://github.com/mongodb/mongo/blob/master/src/mongo/util/assert_util.h): `src/mongo/util/assert_util.h`

### Other components

- **MongoDB client**

## Connections

- MongoDB client → Database server: connects to
- MongoDB client → Sharding router: routes through
- Sharding router → Database server: dispatches requests
- Query settings service → Aggregation pipelines: builds contexts (evidence: `src/mongo/db/query/query_settings/query_settings_service.cpp`)
- Query settings service → BSON documents: parses commands (evidence: `src/mongo/db/query/query_settings/query_settings_service.cpp`)
- Hybrid search builder → Aggregation pipelines: constructs stages (evidence: `src/mongo/db/pipeline/hybrid_search_pipeline_builder.cpp`)
- Query analysis client → Replication coordination: checks primary (evidence: `src/mongo/s/query_analysis_client.cpp`)
- Query analysis client → Database server: runs local commands (evidence: `src/mongo/s/query_analysis_client.cpp`)
- Oplog visibility → Record store: reads oplog (evidence: `src/mongo/db/storage/storage_oplog_manager.cpp`)
- Oplog visibility → Storage engine: tracks visibility (evidence: `src/mongo/db/storage/storage_oplog_manager.cpp`)
- Oplog visibility → Structured logging: logs visibility (evidence: `src/mongo/db/storage/storage_oplog_manager.cpp`)
- Query settings service → Structured logging: logs lookup failures (evidence: `src/mongo/db/query/query_settings/query_settings_service.cpp`)
