惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
IT之家
IT之家
B
Blog
博客园_首页
博客园 - 司徒正美
有赞技术团队
有赞技术团队
博客园 - 聂微东
I
InfoQ
美团技术团队
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
H
Help Net Security
大猫的无限游戏
大猫的无限游戏
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog

News Hacker | 极客洞察

Rockstar GTA 6 团队组工会:薪酬透明、灵活工时、反 crunch Framework 12 值不值:可维修 Linux 机对上 Apple Silicon 低价 MacBook 古罗马公寓:日常、城市规划与沉浸式体验 AI时代的专家价值:验证、经验与大学角色 Chad Whitacre 退 tech 转离线:Home Depot、印刷杂志、东正教社区 本地 Git remote:共享、隔离与 GitHub 误解 AI只该做琐事,别替代人情与创作 AISlop:检测 AI 生成代码坏味道的多语言 CLI 英国低价值采购系统:每月零申报的官僚负担 郁金香狂热:泡沫神话与理性争议 用 LLM 写代码,也要让人比模型更累 AI会重演前端“失去的十年”吗? AI 编程提产却压缩思考,工程质量与协作承压 Cloudflare 多 agent AI 代码评审引发成本与流程争议 500K AI电影“戛纳首映”被质疑只是公关噱头 8×H200跑2B模型到3k tok/s,“标准GPU”标题引争议 防水夹克演化:材料回潮、帽兜变迁与AI争议 意大利人与荷兰人教学时共享手势本能 Claude Code 隐藏配置考古:文档滞后、版本易碎与自动执行争议 大众汽车用 client assertion 阻断 Home Assistant 接入 Zot 支持 Claude Opus 4.8,评论聚焦 Claude Code 计费与 harness 神秘 Hy3 LLM 在 OpenRouter 霸榜:便宜、刷量与隐私争议 佛州 Blue Origin New Glenn 静态点火爆炸,堪比 N1 联网汽车监控升级:数据售卖、监管失灵与断网自保 Blue Origin New Glenn静态点火爆炸,发射台损毁恐延一年 住宅建造为何难规模化:地段、法规、偏好与收入 十种基础云:观云分类、光学现象与云计算误会 据称被 Shopify 收购后,Garnix 关停并开源 Bot Company疑借Airbnb私测家务机器人,致房屋受损 Coalton:Common Lisp 上的静态类型 Lisp,讨论集中在上手与类型建模
Postgres 做 durable workflows:DBOS、Temporal 与自研队列之争
2026-05-29 · via News Hacker | 极客洞察

🎯 讨论背景

这条讨论围绕“Just Use Postgres for Durable Workflows”展开,核心是在问:能不能把 workflow state、队列、重试和业务数据都放进 Postgres,让 ACID 直接提供持久性。评论里反复提到的 absurd(一个基于 Postgres 的 durable workflows 实现)、DBOS(一个把 workflow 状态放进 Postgres 的平台)、Temporal(一个成熟的 workflow engine)和 Restate(一个可自托管的 orchestration 系统)都是这类方案的代表。大家争论的不是“数据库能不能做”,而是“做到什么规模后应该切换到专用系统”,以及切换前会不会自己先长成一个复杂的 workflow engine。评论也补充了很多具体原语和边界条件,比如 LISTEN/NOTIFY、SKIP LOCKED、advisory lock、Cassandra、ClickHouse、VictoriaMetrics 以及大数据量下的 vacuum 和索引问题。

📌 讨论焦点

Postgres 直做工作流很轻量

不少人认为,把 durable workflows 直接建在 Postgres 上非常实用,尤其是在吞吐量不是特别夸张时。这样可以把业务状态和队列消息放进同一个 transaction 里,减少丢消息、补偿和多系统同步的复杂度。评论里提到的 absurd、DBOS 以及一些 Rust/TypeScript 自研实现,都强调客户端代码更简单,状态也更容易被人或 coding agent 理解。有人还举例说,AI 工作流、视频处理、通知投递、甚至内部控制面都已经在用这种模式。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12]

系统复杂度会悄悄回流

另一派的核心担忧是:一旦系统需要 retries、backoff、timeouts、cancellation、versioning、visibility、task routing、heartbeats、replay/debugging 和运维工具,所谓“只是用数据库”很快就会长成一个简化版 workflow engine。很多人指出,最初看起来只是几张表和几个 worker,但随着需求增长,最终会自己补齐一整套专业系统才有的能力。评论里还强调,是否值得这么做,不应只看数据库是否够用,而要看这部分复杂度是不是你的核心业务。也有人把这类自研形容为“买系统”与“自己背维护成本”之间的取舍。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8]

Temporal/DBOS/Restate 的取舍

Temporal 被反复拿来对比:支持者认为它在 workflow 编排、parent/child workflow、Signal/Update 和事件驱动场景上非常强,开发体验也不错。批评者则集中抱怨它的基础设施太重,on-prem 可能要面对 Cassandra 集群、CPU 和运维成本,Cloud 价格与 payload 限制也被认为不够友好。DBOS 和 Restate 则被视为更轻的替代品,前者强调与 Postgres transaction 的原子集成,后者则主打 self-host 和较少 vendor lock-in。也有人直接指出,DBOS 的 tradeoff 是性能上限更容易被 Postgres 卡住。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14] [来源15]

Postgres 的边界、索引和队列原语

评论里也讨论了 Postgres 作为队列和工作流后端时的具体物理边界。有人提到 LISTEN/NOTIFY 在高负载下会遇到全局锁问题,不过 pg19/pg18 的改进被认为会有所缓解;也有人强调 SKIP LOCKED、advisory lock、分区表和更合理的主键设计,才是高并发队列的关键。与此同时,日志、metrics、timeseries 这类高读写负载数据,很多人仍然建议放到 ClickHouse、VictoriaMetrics 之类的专用系统,而不是硬塞进 Postgres。对于 TB 级数据、vacuum、索引扫描和查询放大,有人直接提醒:别把“小规模可行”误读成“永远可行”。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14] [来源15] [来源16]

正确性、幂等与替代方案

还有一组评论把重点放在 correctness 上,认为 workflow 示例往往过于乐观,忽略了 crash 后恢复、重复执行、补偿失败等真实问题。有人提出 idempotent operations 是另一条更稳的路,也有人说过去尝试把一切塞进 stored procedures,最后会因为版本控制、语言笨重和维护困难而变成灾难。线程里还出现了很多替代方案:Oban、Conductor OSS、PgFlow、pgque、Convex、SpacetimeDB,甚至 SQLite-based 的小规模 durable workflow 实现。另一个细节是 secrets 的处理,很多人都认为它应该与 workflow 状态分离,而不是直接塞进数据库消息里。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14] [来源15] [来源16] [来源17] [来源18]

📚 术语解释

durable workflows: 可在崩溃、重启或失败后继续执行的工作流;状态和进度会被持久化。

atomic messaging: 把业务写入和队列/事件入队放在同一个 database transaction 里提交,避免消息丢失或状态不一致。

LISTEN/NOTIFY: Postgres 的通知机制,用来在数据变化时唤醒 worker 或触发异步处理。

SKIP LOCKED: Postgres 的行锁工作模式,允许多个 worker 安全抢任务而不互相阻塞。

advisory lock: 一种应用级锁,常用于跨进程协调任务、避免重复执行。

idempotent: 幂等:同一操作重复执行多次,结果仍然一致,不会额外污染状态。