System Design Essentials - 1
本文是系统设计基础三部曲系列的第一篇,介绍了软件系统设计中的核心构建模块,包括客户端-服务器架构(二层与三层架构)、垂直扩展与水平扩展的区别、数据库基础及CRUD操作、ACID与BASE两种事务模型、CAP定理及其在分布式系统中的权衡、关系型数据库(SQL)与非关系型数据库(NoSQL)的特点与适用场景,以及数据库主从复制的读写分离模式。每个概念都配有简明解释、图示、解决的问题及背后的权衡,适合系统设计入门学习和面试准备。
本文是系统设计基础三部曲系列的第一篇,介绍了软件系统设计中的核心构建模块,包括客户端-服务器架构(二层与三层架构)、垂直扩展与水平扩展的区别、数据库基础及CRUD操作、ACID与BASE两种事务模型、CAP定理及其在分布式系统中的权衡、关系型数据库(SQL)与非关系型数据库(NoSQL)的特点与适用场景,以及数据库主从复制的读写分离模式。每个概念都配有简明解释、图示、解决的问题及背后的权衡,适合系统设计入门学习和面试准备。
系统设计入门级概念梳理,结构清晰、时效性佳,但内容均为基础知识、深度有限,且文章末尾不完整、存在编号错误。
本文是System Design Essentials系列的第三部分也是最后一部分,聚焦系统设计中的优化技术。文章详细介绍了缓存概念、缓存命中与失效,以及五种缓存策略:Cache Aside、Read Through、Write Through、Write Around和Write Back。此外还讲解了幂等性、幂等键、去重机制及其在分布式系统中的重要性,并分析了分布式系统的优势与挑战(一致性、可用性、容错性、延迟),最后深入解释了一致性哈希的原理及其在服务器扩缩容时减少请求重映射的作用。
本文是系统设计系列三篇中的第二篇,聚焦架构决策与关键组件。作者逐一讲解了事件驱动架构(EDA)的松耦合与异步通信优势、Serverless 架构的按需执行与冷启动特性、CDN 通过边缘节点缓存静态内容的原理、消息队列在生产者与消费者之间的解耦与缓冲作用、Pub-Sub 一对多广播模式与队列的区别,以及后台任务处理(将非关键任务异步化)和 Cron 定时任务等模式。文章强调知道组件与知道如何组装系统不同,重点在于权衡各架构选择的成本与收益。
文章介绍了 Theoric Labs 的 LeanDB 实验,旨在将形式化方法与 AI 智能体结合应用于数据库领域:用 Lean 语言描述数据及其属性,同时使用 SQL 数据库进行存储和查询。文章通过咖啡菜单示例系统讲解了 Lean 的类型系统,包括归纳类型(如 Temperature、MenuItem)、细化类型(如限制浓缩咖啡份数为 1-4 的 ShotCount 子类型)、依赖类型(杯型大小依赖于冷热温度的 CupSize 索引族),以及元类型(FieldSpec 宇宙设计模式,用数据描述类型)。作者认为,强类型能让编译器在运行前阻止非法数据写入,将验证结果显式化,从而构建无 bug 的软件系统。
Cloudflare 于 2026 年 9 月 1 日起对 Workers Free 账户的 D1 数据库实施每日硬性限额:行读取或行写入任一耗尽后查询直接报错,直到次日 UTC 00:00 重置。文章详解了 D1 按实际扫描/写入行数(而非 SQL 条数或返回行数)计量的核心机制,列举了无索引过滤、ORDER BY RANDOM()、前置通配符搜索等易触发限额的查询模式,并分析索引在节省读取与产生写放大之间的权衡。作者以自己站点为例梳理了排查与优化步骤,建议用量化监控、索引治理、缓存和降级设计应对免费层故障边界,或选择升级付费方案。
本文深入探讨了代理系统设计的基础与核心组件。作者指出,将前沿模型放入设计糟糕的代理系统只会得到更清晰的失败,因此工程重点应放在模型之外的代理框架(harness)上。文章首先对比了代理工作负载与传统Web请求的差异,强调代理任务耗时、I/O密集、非确定性和高边际成本,并由此推导出架构设计原则。随后,文章详细介绍了代理框架的四个关键组件:工具(Tools)的设计契约与最佳实践、提示词工程(Prompt Engineering)的结构化方法与版本管理、记忆(Memory)的短期与长期区分及上下文管理,以及多代理编排(Orchestration)的并行与顺序模式。所有内容均基于一个真实的五代理系统DevVoice,提供了实用的设计决策与代码示例。
文章探讨了 AI Agent 时代数据库角色的演变。TiDB 唐刘指出,虽然 AI 压缩了中间层软件,但数据库作为 Agent 的“统一存储层”和“单一事实源”,其重要性不降反升。文章详细梳理了从存海量数据、租户隔离、Agent 自主管理到文件与 Workspace 托管的六大产品演化阶段,并讨论了 FDE 角色在 AI 时代的回归,以及判断 AI 产品护城河的核心逻辑:是模型进步的受益方,还是将被吞掉的一层。
文章指出许多人学习 AI Agent 时陷入了“工具焦虑”,盲目追逐 LangChain、MCP 等框架,却忽视了 Agent 的本质是一套围绕目标运行的系统。作者强调,真正的难点在于系统设计——理解工具调用、记忆、反馈修正及工程化约束,而非仅仅跑通 Demo。文章推荐 GitHub 项目 agent_learning,主张从 LLM 基础、Prompt 等底层原理开始,逐步构建从基础到工程化的完整知识体系,最终实现 Agent 在真实环境中的稳定运行。
文章探讨了当前 AI 架构中 Harness(编排层)与后端基础设施分离带来的问题,指出这种分离导致了 Agent 的随机性与后端的确定性之间的调试复杂性。作者提出将后端抽象为 Worker、Trigger 和 Function 三个基本元素,介绍了名为 'iii' 的架构,使 Agent 作为 Worker 直接参与后端系统,而非通过外部集成层调用,从而实现真正的统一基础设施。