IBM Data Replication alternative — IBM Data Replication vs Skippr
IBM Data Replication is log CDC for IBM estates. The family still shows up as InfoSphere Data Replication (IIDR) on older contracts and IBM Data Replication (IDR) on newer ones. Management Console and Access Server sit in front of capture and apply engines. Sources include Db2 (LUW and z/OS), Oracle, SQL Server, PostgreSQL, MySQL, VSAM, and IMS. Targets include peer databases, Kafka, Snowflake, BigQuery, Hadoop, files, and DataStage. AI Edition adds Genius Mesh (a single view of supported pipelines), an in-product assistant, and containerized engines for PostgreSQL and Db2 LUW. IIDR licenses source and target PVUs. IDR licenses the source only, at a higher unit price. Cloud Pak sells both as cartridges, including an add-on for watsonx.data. Dollar list for open systems is quote; third-party PVU cards exist. This is a replicator, often also sold as HA/DR.
Skippr is an open Streamhouse you run as one Rust binary. Write skippr.yml (or the same thing in Python), discover, sync. You query live state over Iceberg ∪ WAL, and the history is ordinary Iceberg in your bucket. No Access Server. ELT into a warehouse is one path, not the product.
| Feature | Skippr | IBM Data Replication |
|---|---|---|
| Deploy | Single Rust binary, your VPC or on-prem | Console, Access Server, capture/apply. Containers for selected PG and Db2 LUW |
| Schema | In-stream evolution, sibling columns | Source-driven apply. Mapping is per subscription |
| Storage | Open Iceberg on Parquet you own | Target datastore or Kafka. Iceberg is via watsonx.data or a lake product, not the engine |
| CDC | Log-based; fails closed if the dest cannot honour | Log capture from Db2, Oracle, SQL Server, VSAM, IMS, and others |
| Query | skipprd query on Iceberg ∪ WAL; history in any Iceberg engine | Destination after apply. No SQL engine in IIDR |
| Pricing | Free self-hosted engine | PVU (IIDR both sides, IDR source). Cloud Pak cartridges. See IBM. |
What IBM Data Replication is good at
z/OS without a full-table pull. Garanti BBVA-style remote source off Db2 z/OS onto Exadata or Kafka is the job this software was written for. VSAM to Kafka is a named path. You can also keep a writable standby for failover, which is why pension and bank shops still buy it as operations kit, not only as analytics ingest. If the source is IMS or a mainframe CIF file, that is a real product.
Where the job is wider
This is a CDC mesh. It is not a Streamhouse. There is no Iceberg ∪ WAL. There is no skipprd query on in-flight rows. Kafka or Snowflake is the landing. watsonx.data is another IBM meter.
License math is the ops. IIDR cheaper per PVU, both ends. IDR dearer per PVU, source only. Pick wrong and you buy cores you did not mean to. Console and Access Server are free of that meter; the engines are not. AI Edition's containers cover selected PostgreSQL and Db2 LUW, not VSAM.
Skippr will not capture IMS, VSAM, or Db2 z/OS. Skippr also will not be your failover pair. If the job is "IBM log CDC off the mainframe into Kafka," Data Replication is the narrower tool. If the job is live SQL on Iceberg you run, IIDR was never that.
Getting started
Install skipprd from the install guide, or pip install skippr. The three tabs write the same skippr.yml. Then discover, sync, and query.
skippr:
workspace: analytics
skipprd_el_storage_mode: local
pipelines:
orders:
data_source: data_sources.app_db
data_sink: data_sinks.lake
data_sources:
app_db:
Postgres:
host: db.internal
user: skippr_reader
password: ${APP_DB_PASSWORD}
database: app
tables: [orders, customers]
cdc_mode: snapshot_then_cdc
data_sinks:
lake:
AthenaIceberg:
warehouse: s3://my-iceberg-warehouse/
glue_database_name: analytics
athena_workgroup_name: primary
athena_results_s3_bucket: my-athena-results
region: us-east-1
schema_sink: schema_sinks.lake_schema
schema_sinks:
lake_schema:
AthenaIceberg:
warehouse: s3://my-iceberg-warehouse/
glue_database_name: analytics
athena_workgroup_name: primary
athena_results_s3_bucket: my-athena-results
region: us-east-1skipprd --workspace analytics --storage-mode local connect data-source postgres \
--pipeline orders \
--name app_db \
--host db.internal \
--user skippr_reader \
--password '${APP_DB_PASSWORD}' \
--database app \
--tables orders \
--tables customers \
--cdc-mode snapshot_then_cdc
skipprd connect data-sink athenaiceberg \
--pipeline orders \
--name lake \
--warehouse s3://my-iceberg-warehouse/ \
--glue-database-name analytics \
--athena-workgroup-name primary \
--athena-results-s3-bucket my-athena-results \
--region us-east-1
skipprd connect schema-sink athenaiceberg \
--pipeline orders \
--name lake_schemafrom skippr import (
Config,
DataSinkAthenaIceberg,
DataSourcePostgres,
DataSourcePostgresSourceCdcMode,
EnvRef,
LocalStorage,
Pipeline,
)
cfg = Config().workspace("analytics").storage(LocalStorage())
app_db = cfg.data_source(
"app_db",
DataSourcePostgres(
host="db.internal",
user="skippr_reader",
password=EnvRef("APP_DB_PASSWORD"),
database="app",
tables=["orders", "customers"],
cdc_mode=DataSourcePostgresSourceCdcMode.SNAPSHOTTHENCDC,
),
)
lake = cfg.data_sink(
"lake",
DataSinkAthenaIceberg(
warehouse="s3://my-iceberg-warehouse/",
glue_database_name="analytics",
athena_workgroup_name="primary",
athena_results_s3_bucket="my-athena-results",
region="us-east-1",
),
schema_sink="lake_schema",
)
cfg.pipeline("orders", Pipeline(data_source=app_db, data_sink=lake))
cfg.save("skippr.yml")export APP_DB_PASSWORD='your-postgres-password'
skipprd discover --pipeline orders
skipprd sync --pipeline orders --once
skipprd query "SELECT count(*) FROM analytics.orders"Which to choose
Choose IBM Data Replication if you need log CDC off Db2 z/OS, VSAM, or IMS into Kafka or a warehouse, and apply after capture is enough.
Choose Skippr if you want one binary, live SQL, and Iceberg files that stay yours. Skippr will not read a mainframe log.
Install from Install. Connector and query reference live in Developer Docs. For optional onboarding in your VPC, Enterprise Jumpstart or Contact.
