vnvohub/deltaforge

By vnvohub

Updated 4 months ago

DeltaForge is a Change Data Capture (CDC) framework to stream db changes into downstream systems.

Image
Message queues
Databases & storage
0

995

vnvohub/deltaforge repository overview

DeltaForge

A high-performance Change Data Capture (CDC) engine built in Rust. Stream database changes to Kafka, Redis, and NATS with configurable routing, transformations, and delivery guarantees.

⚠️ Active development. APIs and configuration may change.

Quick Start

docker run --rm \
  -p 8080:8080 \
  -e MYSQL_DSN="mysql://user:pass@host:3306/db" \
  -e KAFKA_BROKERS="kafka:9092" \
  -v $(pwd)/pipeline.yaml:/etc/deltaforge/pipeline.yaml:ro \
  -v deltaforge-checkpoints:/app/data \
  ghcr.io/vnvo/deltaforge:latest \
  --config /etc/deltaforge/pipeline.yaml

pipeline.yaml

apiVersion: deltaforge/v1
kind: Pipeline
metadata:
  name: orders-pipeline
  tenant: acme

spec:
  source:
    type: mysql
    config:
      id: mysql-src
      dsn: ${MYSQL_DSN}
      tables: [shop.orders]

  processors:
    - type: javascript
      inline: |
        function processBatch(events) {
          return events.filter(e => e.after?.status !== 'draft');
        }
    - type: flatten
      separator: "__"

  sinks:
    - type: kafka
      config:
        id: kafka-sink
        brokers: ${KAFKA_BROKERS}
        topic: cdc.${source.table}
        envelope:
          type: debezium

Sources

SourceProtocol
MySQLBinlog replication
PostgreSQLLogical replication (pgoutput)

Processors

ProcessorDescription
javascriptCustom transforms via V8 — filter, enrich, redact
outboxTransactional outbox pattern with per-aggregate routing
flattenCollapses nested JSON to parent__child keys (~900K events/sec)

Sinks & Formats

SinkEnvelope formats
KafkaNative · Debezium · CloudEvents
Redis StreamsNative · Debezium · CloudEvents
NATS JetStreamNative · Debezium · CloudEvents

Tags

TagDescription
latestLatest stable release
latest-debugIncludes shell for troubleshooting
x.y.zSpecific version

Images are multi-arch: linux/amd64 and linux/arm64.

Ports

PortPurpose
8080REST control plane (pipeline lifecycle, health, schema endpoints)
9000Prometheus metrics

Volumes

PathPurpose
/app/dataCheckpoint storage (mount a named volume to persist across restarts)
/etc/deltaforge/Pipeline config files

Tag summary

Content type

Image

Digest

sha256:5ace2c80d

Size

57.8 MB

Last updated

4 months ago

docker pull vnvohub/deltaforge:0.1.0-beta.9-debug