FfaultlineRELIABILITY LABOPEN SOURCE / v1.2.0

FAILURE IS INEVITABLE. SILENCE IS OPTIONAL.

Break the worker.
Keep the promise.

进程会消失,网络会断开,旧 Worker 会迟到。
可靠性不是一句承诺。它是一条经得起核对的执行轨迹。

faultline / execution.log

00.000 lease.claimed token=1

00.012 worker.stopped SIGKILL

02.402 lease.expired reclaim

03.007 lease.claimed token=2

03.710 job.succeeded receipt=1

ILLUSTRATIVE SEQUENCE / 真实记录在下方回放

RECORDED, NOT LIVE

公开页面回放真实进程实验的记录;不会在你的浏览器里伪造 Worker,也不会在服务器上执行任务。

校验事件哈希链…

THE RELIABILITY THEATRE

Recovery, frame by frame.

6 FAILURES / ONE DURABLE ENGINE

PROCESS CRASH

如果进程消失了,任务还在吗?

LOADING
FRAME 0WAITING+0.00s
ACTUAL ATTEMPT TIMELINE不是动画模拟:宽度来自实际时间戳
ATTEMPTS0
FENCING TOKEN0
COMMIT RECEIPTS0
CURRENT OWNER—

PERSISTED EVENTS

SHOW THE RECEIPTS

把“应该可靠”变成逐条断言。

RECOMPUTED IN YOUR BROWSER

这些断言检查最终记录;回放游标展示事件发生时的状态。哈希链用于发现记录变动,不能证明记录来自独立可信第三方。

SMALL ENOUGH TO UNDERSTAND.

每一条边界,
都说得清楚。

一个单机任务引擎,一组真实故障,
一份可以在面试中逐层追问的工程作品。

读架构与取舍 ↗
01

Durable intent

幂等键与内容指纹落盘。相同意图复用原结果,冲突意图返回 409。

02

Lease + fencing

进程拥有有时限的租约。旧 token 在数据库提交边界被拒绝。

03

Atomic receipt

内置结果收据与成功状态一起提交。执行允许重试,结果有唯一约束。

04

Honest boundaries

没有宣称任意外部副作用 exactly-once,也没有把本机实验包装成分布式高可用。

YOUR NEXT EXPERIMENT

把故障带回你的终端。

Node.js 24.x · 零运行时依赖 · SQLite WAL · 独立进程

git clone https://github.com/qiyuhuating/faultline-labcd faultline-lab && npm start打开 http://127.0.0.1:8787