Skip to main content

Book Keeper

Implement a bulletproof financial foundation with Book Keeper, a high-performance double-entry ledger abstraction designed for modern fintech applications. Whether you are building digital wallets, complex billing engines, or global payment platforms, Book Keeper provides the immutable, audit-ready storage layer your financial data demands.

Key Features

  • Double-Entry Core: Every transaction is governed by strict accounting principles. With built-in validation, Book Keeper ensures that every debit is matched by an equal credit, eliminating accounting errors at the database level.
  • Swappable Storage Adapters: Future-proof your infrastructure. Start with PostgreSQL for simplicity and switch to high-throughput engines like TigerBeetle as your transaction volume scales—all without changing your core business logic.
  • Automated Financial Reporting: Save months of development time with pre-built projectors. Generate real-time General Ledgers, Trial Balances, and Balance Sheets directly from your transaction data.
  • Multi-Tenant Isolation: Designed for enterprise scale, our architecture provides strict data isolation. Manage multiple companies, products, or business units within a single deployment with total security.
  • Immutable Audit Trail: Built on Event Sourcing and CQRS patterns, every financial state change is recorded as an immutable event. This provides a "time-machine" for your data, making audits and historical reconciliations effortless.

How It Works

Book Keeper acts as a specialized database for money. It abstracts the complexity of financial state management through a clean, decoupled API inspired by the Ports and Adapters pattern.

The system achieves high integrity and rapid performance by separating the Write-side (recording transactions to an immutable event store) from the Read-side (projecting data into optimized views for reports). Integration with your existing ecosystem is seamless; the system can listen to business events—like InvoicePaid—and automatically trigger the corresponding ledger entries via an integrated event bus such as NATS or Kafka. It also has ReST API for sync calls made by users or services with configurable authentication and authorization.

For detailed documentation, architectural deep-dives, and implementation guides, visit the official documentation at Use Case: Wallet Implementation.