Automatic and reliable PostgreSQL data change tracking using Write-Ahead Log and Change Data Capture.
Bemi is an automatic data change tracking system for PostgreSQL that ensures 100% reliability and comprehensive change understanding. It connects to PostgreSQL's Write-Ahead Log (WAL) and implements the Change Data Capture (CDC) pattern, operating non-invasively in the background without requiring alterations to existing database tables.
Developers and teams using PostgreSQL who need reliable, automatic tracking of database changes for purposes like audit trails, compliance, troubleshooting, or real-time data streaming. It is particularly suited for applications in fintech or other regulated industries where data integrity and change history are critical.
Developers choose Bemi because it offers 100% reliable change tracking by leveraging PostgreSQL's WAL, operates without impacting application performance, and requires no changes to existing database schemas. Its ability to optionally enrich changes with application-specific context via ORM packages provides deeper insights compared to basic CDC solutions.
Automatic data change tracking for PostgreSQL
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages PostgreSQL's Write-Ahead Log to capture all database changes without missing any, ensuring complete audit trails as stated in the README.
Works without altering existing table structures, making it easy to add to live databases without schema migrations.
Operates asynchronously from the WAL without affecting application runtime performance, avoiding slowdowns during data changes.
Optional integration with ORM packages allows adding application-specific context like user ID or API endpoint to change data.
Enables retrieval of historical data and easy filtering of changes, useful for audit trails and troubleshooting without event sourcing.
Requires Java, NATS server, and Node.js, increasing setup complexity and infrastructure overhead for local development and production.
Only supports PostgreSQL databases, making it unsuitable for projects using other database systems like MySQL or SQLite.
Changes are processed from the WAL with a slight delay (seconds), not ideal for use cases needing real-time synchronous change visibility.
Production self-hosting involves managing Debezium, NATS JetStream, and the Bemi Worker, which can be resource-intensive and require operational expertise.