在技术圈中,似乎一直存在着两个阵营。
追逐“潮流词汇”的阵营
这个阵营倾向于盲目跟风,采用当下最热门的技术,而不去认真思考其是否真正适合当前的问题。他们很容易被各种销售宣传所吸引:实时、无限扩展、前沿科技、云原生、无服务器、零信任、AI 驱动……等等。
这一现象在 Kafka 生态中尤为常见,例如所谓的“Streaming Lakehouse™️”、“Kappa™️ 架构”、“Streaming AI Agents”等等。
这种做法有时被称为“简历驱动设计”(Resume-Driven Design)。现代开发环境反而在鼓励这种趋势。顾问们通过“洞察报告”推荐充满厂商技术的“创新架构”,系统设计面试则要求候选人设计类似 Google 那样的超大规模系统——尽管这些公司所需的规模往往连现在的十分之一都达不到。职业晋升奖励的是重构到“新热门技术栈”,而不是聪明地解决问题。
追求“常识与务实”的阵营
与之相对的,是更加务实的技术人。他们排除不必要的复杂性,避免过度工程,做决策时依据第一性原理进行思考。他们不会被市场宣传左右,而是用理性和怀疑精神看待各种厂商的承诺。
过去,“潮流技术”阵营在数量和声量上都占据了上风。但如今,局势似乎正在发生微妙的变化。两个明显的趋势正在增强务实派的声音:
趋势一:Small Data 运动
越来越多的技术人意识到自己的数据其实并没有那么“庞大”,而现代的硬件能力却变得异常强大。比如 AWS 上可以租到拥有 128 核心和 4TB 内存的实例。AMD 最近甚至发布了 192 核心的 CPU。这些配置对大多数应用而言,已经绰绰有余。
趋势二:Postgres 的复兴
Postgres 生态正迎来爆炸式增长。过去两年间,“Just Use Postgres(所有场景都用 Postgres)”这个理念迅速走红。核心思想是:在没有确切需求的情况下,不要引入复杂的新技术,而使用 Postgres 其实已经能解决大部分问题。
Postgres 正在向一系列专用系统发起挑战,例如:
- Elasticsearch → 使用 tsvector/tsquery 实现全文检索;
- MongoDB → 用 jsonb 存储和查询半结构化数据;
- Redis → 用 UNLOGGED TABLE 实现缓存;
- 各种 AI 向量数据库 → 使用 pgvector 或 pgai;
- Snowflake → 借助 pg_mooncake 或 pg_duckdb;
- Kafka → 本文即将讨论的重点。
注意,Postgres 并非在功能上完全等同于这些专用系统,而是遵循帕累托原则:它可以以 20% 的开发工作,解决 80% 的使用场景。
结合以上两大趋势,就能理解为何 Postgres 越来越受青睐:
Postgres 是一个久经考验的稳定系统,简单、可靠、扩展性强。配合现代高性能硬件,大多数组织其实并不需要复杂的分布式系统。
即便是对 Kafka 有所偏爱的人,也会承认这一点。Kafka 虽然稳定、成熟、具备良好社区支持,而且具有更强的扩展性,但在很多场景下,它并不是最合适的选择。许多低吞吐的任务(比如每秒几百KB的数据)根本不需要 Kafka。
当前的技术圈存在一种“扩展性拜物教”——一味追求“最强”的技术方案,却忽略了什么才是真正的“适合”。正如一篇名为《PG as Queue》的文章所言,简单才是王道。