精选项目

金融基础设施

Ledger.

每一笔分录都必须准确平衡。

复式记账服务,在数据库层强制执行不变量,保留不可变历史并保障并发余额安全。

独立开源项目
TypeScriptFastifyPostgreSQL
概念架构
  1. 01幂等键
  2. 02平衡分录
  3. 03按顺序锁定账户
  4. 04数据库约束
  5. 05不可变账簿

工程问题

财务完整性不能依赖每个调用方都牢记所有规则。重复请求、并发提现及直接数据库操作都可能破坏单次正常流程中的假设。

Ledger 是独立项目,包含 TypeScript/Fastify API、PostgreSQL 和 React 仪表盘。关键不变量由数据库强制执行。

原子分录

API 验证分录,用内容指纹领取幂等键,按确定顺序锁定账户,计算余额并在同一事务写入条目。延迟触发器在提交时再次验证借贷平衡和币种一致。

成功请求的重放返回原始交易。同键不同内容产生冲突。失败事务连同幂等键领取一起回滚,允许修正问题后重试。

金额、并发与历史

金额以最小货币单位的整数存储,API 使用字符串保持精度。账户锁串行化冲突写入。历史禁止修改或删除,纠正通过关联冲销完成。试算平衡报告从条目重算余额并暴露偏差。

仓库中的测试使用真实 PostgreSQL 验证不变量、重复请求和并发。仅模拟应用层无法证明数据库约束及锁行为。

保证与局限

悲观锁简化冲突,但会串行化热点账户更新。同时存储余额和历史优化读取,也带来对账责任。认证、多租户隔离和事务 outbox 属于路线图。下方演示为本地模型,实际保证由服务和数据库实现。

亲手探索模型.

设计即平衡

记入一笔 150.00 巴西雷亚尔存款,然后用相同幂等键重复请求。

幂等键 deposit-demo-001
复式记账存款示例
账户借方贷方
运营现金0.00—
客户钱包—0.00
就绪,尚未记入交易。 交易数量: 0.
确定性本地模型,实际服务通过 PostgreSQL 强制执行不变量。
继续探索Constellation Gate
所有精选项目