| Frontend | Serves the LangSmith UI. |
| Backend | Serves most of the LangSmith API. |
| Platform backend | Receives runs and feedback from clients and queues them for writing. Sends trace queries to SmithDB. |
| Queue | Runs automation rules, including online evaluations. |
| Ingest queue | Writes queued runs, feedback, and deletes to SmithDB. |
| SmithDB cluster manager | Decides which SmithDB pod handles which requests, so that related requests go to the same pod. |
| SmithDB query | Answers queries, and applies feedback and deletes. Optional query pools take heavy work away from the main query pods, so that UI and API reads stay fast. |
| SmithDB ingestion | Stores new runs and run updates. |
| SmithDB compaction scheduler | Plans compaction work, including the removal of expired data. |
| SmithDB compaction worker | Runs the compaction jobs: merges and rewrites the data in object storage. |
| SmithDB metastore migration | Prepares the metastore during install and upgrade. |
| SmithDB migration | Copies historical data from ClickHouse. Optional. |
| SmithDB metastore | Keeps a record of each SmithDB data file, and stores new feedback. |
| Object storage | Holds all SmithDB data files. |
| Redis, PostgreSQL | LangSmith datastores. |