Hasty Briefsbeta

双语

Show HN: SierraDB – A Distributed Event Store Built in Rust

7 months ago
  • #rust
  • #event-sourcing
  • #distributed-systems
  • SierraDB是一个基于Rust构建的分布式事件存储系统,专为解决事件溯源数据库的现存缺陷而设计。
  • 事件溯源需要特定保障机制,例如仅追加存储、无间隔序列号和高效流读取,这些正是通用数据库的痛点。
  • 采用Rust语言开发确保无垃圾回收停顿的稳定性能,保障延迟一致性。
  • 通过RESP3协议实现通信,兼容所有支持Redis客户端的编程语言。
  • 采用分区模型实现水平扩展,支持从单节点到数百节点的弹性扩容。
  • 内置订阅功能可自历史任意时点流式传输事件,极大简化投影与事件处理器开发。
  • 核心架构包含分区、桶和段三级结构,确保数据不可变性与高效索引。
  • 数据库严格保证每个分区内序列号的连续单调递增,这对乐观锁至关重要。
  • 通过共享分区键实现跨流事务,支持原子化追加多事件流。
  • 基于法定人数写入协议和水位线系统达成分布式共识,保障读取一致性。
  • 使用libp2p实现节点间通信,配合Kameo角色框架提供容错能力。
  • 内置SierraDB Inspector网页界面,支持事件探查与投影执行。
  • 提供Docker镜像简化部署,欢迎贡献文档改进与测试用例增强。