Skip to content

第 8 篇 · 8.1 实验课:把 Langfuse 模式缩小成一个可复用 Infra

学习目标

完成本篇后,你将能够:

  1. 把 Langfuse 的架构模式抽象成一个小型 event infra。
  2. 知道每个模块为什么存在,而不是照抄目录。
  3. 反向理解本 repo 里的 web、shared、worker、Postgres、ClickHouse、Redis、S3 如何组合。

8.1.1 你要学的不是“Langfuse 的所有业务”

初学者看 Langfuse 容易被业务名词淹没:trace、observation、score、eval、prompt、dataset、session。实验课会把这些都暂时压缩成一个通用对象:

event = 外部系统上报的一条可观测记录。

然后只保留 Langfuse 这类平台最重要的 infra 骨架:

这个缩小版能帮助你理解 Langfuse 的大结构:

Mini infraLangfuse repo
HTTP 入口web/src/pages/api/public/ingestion.ts
shared contractpackages/shared/src/server/queues.ts、domain Zod
raw storageS3/blob + StorageService
job queueRedis/BullMQ + shared queue class
workerworker/src/app.ts + WorkerManager
batch writerClickhouseWriter
OLAP storeClickHouse events_full / events_core
query builderEventsQueryBuilder + FilterState

8.1.2 实验课的阅读方式

每个实验都按四段来讲:

  1. 目标:你要实现哪种 infra 能力。
  2. 缩小版设计:如果从零做,最小模块是什么。
  3. Langfuse 对照:当前 repo 对应哪些文件。
  4. 检查问题:做完后如何验证设计没有漏掉边界。

本篇章节