explaingit

kanutocd/mammoth

Analysis updated 2026-05-18

1RubyAudience · developerComplexity · 4/5LicenseSetup · moderate

TLDR

A self-hosted Ruby tool that reliably delivers PostgreSQL database change events to webhooks, with retries, dead letters, and inspectable operational state.

Mindmap

mindmap
  root((Mammoth))
    What it does
      Watches database changes
      Delivers via webhooks
      Retries on failure
    Tech stack
      Ruby
      PostgreSQL
      SQLite
      Docker
    Use cases
      Event driven architecture
      Change data capture
      Multi destination fanout
    Audience
      Backend developers
      Ops teams
    Deployment
      Docker Compose
      Kubernetes Helm chart
      Webhooks quickstart demo

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Send real-time notifications to other systems whenever a database row changes.

USE CASE 2

Build an event-driven architecture on top of an existing PostgreSQL database.

USE CASE 3

Deliver database changes to multiple destinations with different retry and masking rules.

USE CASE 4

Recover reliably from failed webhook deliveries using dead-letter inspection and replay.

What is it built with?

RubyPostgreSQLSQLiteDockerKubernetes

How does it compare?

kanutocd/mammoth521xueweihan/homebrew-coreamitsuryavanshi/graphiti-activegraph
Stars111
LanguageRubyRubyRuby
Last pushed2022-05-112022-12-09
MaintenanceDormantDormant
Setup difficultymoderateeasyhard
Complexity4/51/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires PostgreSQL with logical replication enabled and Ruby 4.0 or newer, the Docker Compose quickstart is the fastest way to see it working.

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.

In plain English

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.

Copy-paste prompts

Prompt 1
Help me run the Mammoth webhooks-quickstart demo with Docker Compose.
Prompt 2
Explain how Mammoth's dead-letter and retry system works for failed webhook deliveries.
Prompt 3
Walk me through connecting Mammoth to my existing PostgreSQL application using the ADAPTING guide.
Prompt 4
Show me how to deploy Mammoth on Kubernetes using its public Helm chart.

Frequently asked questions

What is mammoth?

A self-hosted Ruby tool that reliably delivers PostgreSQL database change events to webhooks, with retries, dead letters, and inspectable operational state.

What language is mammoth written in?

Mainly Ruby. The stack also includes Ruby, PostgreSQL, SQLite.

What license does mammoth use?

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.

How hard is mammoth to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is mammoth for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.