Send real-time notifications to other systems whenever a database row changes.
Build an event-driven architecture on top of an existing PostgreSQL database.
Deliver database changes to multiple destinations with different retry and masking rules.
Recover reliably from failed webhook deliveries using dead-letter inspection and replay.
| kanutocd/mammoth | 521xueweihan/homebrew-core | amitsuryavanshi/graphiti-activegraph | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | Ruby | Ruby | Ruby |
| Last pushed | — | 2022-05-11 | 2022-12-09 |
| Maintenance | — | Dormant | Dormant |
| Setup difficulty | moderate | easy | hard |
| Complexity | 4/5 | 1/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires PostgreSQL with logical replication enabled and Ruby 4.0 or newer, the Docker Compose quickstart is the fastest way to see it working.
Mammoth is a self-hosted tool that watches for changes happening inside a PostgreSQL database and reliably delivers those changes to other systems, typically over webhooks. When a row is inserted, updated, or deleted in the database, Mammoth picks up that change through PostgreSQL's logical replication feature and forwards it onward, with a focus on making sure the delivery actually happens, even if something fails along the way. The README describes Mammoth as intentionally boring infrastructure. It is configured with YAML files that are validated against a JSON Schema, and it keeps track of its own operational state, like which changes have been delivered and which have failed, in a local SQLite database. This lets an operator inspect what happened, recover from failures, and understand the current state of delivery without guessing. Mammoth supports PostgreSQL versions 14 through 18, matching the versions the PostgreSQL project itself currently maintains. The recommended way to try it out is a bundled demo stack called webhooks-quickstart, which uses Docker Compose to start a sample application, a PostgreSQL database with logical replication turned on, Mammoth itself, and a webhook receiver that shows retries and payload masking in action. From there, a guide walks through connecting Mammoth to a real, existing PostgreSQL application. The project includes a command-line tool for validating configuration, checking status, and managing delivery and dead letters (messages that failed to deliver after repeated retries). It supports sending the same change to multiple destinations, filtering which changes go where, masking sensitive fields before sending, and configuring retry behavior per destination. It also exposes health and metrics endpoints, and ships with Docker image support and a public Helm chart for running it on Kubernetes. The repository includes a set of runnable examples covering real scenarios such as recovering after a restart, handling a failing webhook destination, dealing with schema changes over time, and running Mammoth as a single consumer inside Kubernetes. Mammoth requires Ruby 4.0 or newer and is released under the MIT license.
A self-hosted Ruby tool that reliably delivers PostgreSQL database change events to webhooks, with retries, dead letters, and inspectable operational state.
Mainly Ruby. The stack also includes Ruby, PostgreSQL, SQLite.
Released under the MIT license, so it can be used, modified, and redistributed freely, including for commercial purposes, as long as the copyright notice is kept.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.