HackerNews

書き込みは最後、読み込みは最初のルール

The Write Last, Read First Rule

https://tigerbeetle.com/blog/2025-11-06-the-write-last-read-first-rule/


TigerBeetleは、金融取引のデータベースであり、正確性を重視して設計されています。しかし、正確なコンポーネントから正確なシステムを構築することは容易ではなく、各システムが孤立して正確であっても、全体として正確であるとは限りません。この記事では、トランザクションがない状況下での一貫性の維持方法、中間状態の外部化による正確性の考察、部分的な障害からの回復方法について説明しています。TigerBeetleは、二重記帳に必要な基本要素(アカウントと送金)を提供し、Postgresはマスターデータのストレージとして機能します。トランザクションの完了は瞬時であり、途中の状態は外部化されず観測できませんが、二つのトランザクションの順次構成は一つのトランザクションとしては扱えず、完了は約束されたものではありません。システムの安全性と生存性の特性を理解することが重要です。最終的に、TigerBeetleが「記録システム」として機能し、Postgresがサポート的な役割を果たすシステムとして選択されます。