Write path
The write path is how new runs from the SDK reach durable storage in SmithDB.- The platform backend receives runs from the SDK and adds a task, a batch of runs, to the ingestion queue in Redis.
- An ingest queue worker takes the task.
- The worker sends the runs to SmithDB ingestion. Ingestion keeps the rows in memory for a short time.
- Ingestion writes the rows to object storage as a segment, a data file that SmithDB never changes after it writes it.
- Ingestion records the segment in the metastore. When the segment is in object storage and in the metastore, the data is durable.
- Ingestion confirms the write to the worker, and the worker removes the task from Redis.
Read path
The read path is how SmithDB answers queries from LangSmith, for example for traces, run lists, and run statistics.- The platform backend sends UI and API queries to SmithDB query.
- Query asks the metastore which segments contain data for the tenant, the project, and the time range.
- For each segment, query uses the fastest source that has it. It reads the newest segments from the ingestion pod that wrote them, and all other segments from its disk cache.
- If the segment is not on the disk cache, or the ingestion pod is not available, query reads it from object storage. It keeps a copy on its disk cache for the next query.
- Query merges all segments into one result, removes deleted and expired rows, and sends the result to the platform backend.
Feedback and delete path
The feedback and delete path is how SmithDB changes runs that it already stores: it adds feedback to runs and removes deleted runs.- The platform backend receives feedback and deletes. It adds a task to a queue in Redis: feedback goes to the feedback queue, and deletes go to another task queue.
- An ingest queue worker takes the task.
- The worker sends the task to the SmithDB mutations pool, or to the query pool if the mutations pool is not enabled.
- SmithDB stores feedback as rows in the metastore. For a delete, SmithDB finds the rows to delete and records them in the metastore as a deletion vector.
- SmithDB confirms the change to the worker, and the worker removes the task from Redis. From then on, queries show the new feedback and hide the deleted rows.
- Later, compaction jobs read the new feedback and the deletion vectors.
- In object storage, the compaction jobs write the feedback into files next to the run segments, and rewrite the affected segments without the deleted rows.
Compaction path
The compaction path is how SmithDB keeps stored data fast to query: it merges small segments, writes feedback into files, and removes expired and deleted data.- The compaction scheduler watches the metastore for new and changed segments, and plans compaction jobs for them. It keeps the jobs in a queue in memory.
- A compaction worker takes a job, reads its input segments from object storage, and writes new segments to object storage. For example, it merges small segments into one larger segment, writes feedback into files, or rewrites a segment without its deleted and expired rows.
- In one step, the worker replaces the old segments with the new segments in the metastore. If another job changed one of the old segments first, nothing changes and the job fails. Single failures of this type are normal.
See also
Connect these docs to your agent of choice via MCP for real-time answers.

