pulsaride-transform

A complete migration runtime for Oracle → PostgreSQL. Declarative transforms, dependency-aware execution, production-grade DLQ, and an observability layer that tells you whether you can cut over safely.

What it does

pulsaride-transform gives Java teams a YAML-driven pipeline for reading rows from Oracle, applying declarative field mappings, expression evaluations, filters, and DQ expectations, then writing to PostgreSQL — with built-in Level 1 (count/checksum) and Level 2 (sampled row diff) validation, a production-grade dead-letter queue, dependency-aware deferral, and H4 observability that explains each run in plain language.

Key capabilities

  • Declarative YAML — field mappings, filters, expressions, and DQ expect rules
  • depends_on — automatic deferral when FK targets haven't migrated yet; rows replay on arrival
  • Spring auto-configuration — one dependency, zero @Bean definitions
  • CDC mode — Debezium connector for near-real-time incremental migration
  • Dead-letter queue — rejected rows stored with reason and run ID; inspectable from the dashboard
  • Built-in monitoring dashboard at /pulsaride — live progress, run history, DLQ summary
  • L1 validation — row count comparison exposed via Spring Actuator
  • L2 validation — deterministic sampling + bi-directional field diff
  • Hot-reload of YAML rules in development mode
  • File-driven pipeline — pulsaride-pipeline.yml defines the full lifecycle as a DAG

Add to your project

<dependency>
  <groupId>com.pulsaride</groupId>
  <artifactId>pulsaride-transform</artifactId>
  <version>2.1.0</version>
</dependency>

Requires Java 21+. Apache 2.0 license.

Quick navigation