ReplicaDB is a free, open source data engineering & integration project written in Java and released under Apache-2.0. It has 500 GitHub stars, 114 forks and 4 open issues, and was last pushed 17 hours ago. On this registry it ranks #50 of 51 tracked projects in Data Engineering & Integration, with 5 head-to-head comparisons available.

License Last Version Docker Pull Github Downloads Github Start CII Best Practices

replicadb-logo

ReplicaDB is a high-performance, open-source command-line tool for bulk data replication between heterogeneous databases. It enables efficient ETL/ELT workflows by transferring data in parallel between Oracle, PostgreSQL, MySQL, MongoDB, SQL Server, and other databases without requiring database agents or triggers.

ReplicaDB supports a wide range of data sources including relational databases (Oracle, PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, IBM DB2 LUW and DB2 for i), NoSQL databases (MongoDB), data virtualization platforms (Denodo), file formats (CSV), cloud storage (Amazon S3), and streaming platforms (Kafka). Any JDBC-compliant database is also supported with some limitations.

The managed server provides redacted per-run diagnostics through the runs API, including bounded multiline logs and exception stack traces. These logs are limited to 256 KiB and are separate from standalone CLI logging; treat them as sensitive operational data.

The tool is cross-platform compatible with Windows, Linux, and macOS, and leverages parallel data transfer for optimal performance and system utilization during large-scale data migrations and synchronization tasks.


ReplicaDB-Conceptual

Why ReplicaDB

ReplicaDB addresses common gaps in existing database replication tools by providing:

  • Open Source: Transparent development and community-driven improvements
  • Cross-Platform: Java-based solution compatible with Linux, Windows, and macOS
  • Heterogeneous Support: Works with SQL, NoSQL, and persistent stores like CSV, Amazon S3, or Kafka
  • Simple Architecture: Standalone command-line tool without requiring database agents
  • High Performance: Optimized for bulk data transfer with large datasets
  • Non-Intrusive: Focused on batch replication without requiring database triggers or CDC installation

Comparison with Alternatives

Common alternatives and how ReplicaDB differs:

  • SymmetricDS: A comprehensive CDC solution with database triggers. While feature-rich, it requires installation and maintenance of capture tables in source databases, making it more intrusive for batch replication scenarios.
  • Sqoop: Designed specifically for Hadoop ecosystems, limiting its use in other environments where Hadoop infrastructure is not available.
  • Pentaho and Talend: Full-featured ETL platforms that require custom development for each replication job, increasing complexity and maintenance overhead for straightforward data transfer tasks.

Feature Comparison

Feature SymmetricDS Sqoop Pentaho/Talend ReplicaDB
Database Agents Required Yes No No No
Triggers in Source DB Yes No No No
Heterogeneous Databases Limited No Yes Yes
Hadoop Requirement No Yes No No
Custom Development per Job Low Low High None
Parallel Transfer Yes Yes Yes Yes
Open Source Yes Yes Yes Yes

Installation

Prerequisites

Before installing ReplicaDB, ensure you have:

  • Java Runtime: Java JDK or JRE 17 or higher installed and configured
  • Network Connectivity: Reliable network access to both source and sink databases
  • Database Credentials: Appropriate permissions on both databases:
    • Source database: SELECT permissions on tables to replicate
    • Sink database: INSERT, UPDATE, DELETE, and CREATE TABLE permissions
  • (Optional) Docker or Podman for containerized deployment

Choose a release

ReplicaDB has two separate releases:

CLI Server
Use it for Direct transfers from scripts or a terminal Shared jobs, schedules, users, audit, and run history
Download ReplicaDB-1.0.2.tar.gz or .zip ReplicaDB-server-1.0.2.tar.gz or .zip
PostgreSQL Only the source and sink databases Embedded in local; external in api and worker
State REPLICADB_HOME REPLICADB_SERVER_HOME
Interface CLI Authenticated API/frontend and private worker health endpoint

Use the CLI for one replication at a time. It is Spring-free and keeps its existing options-file and exit-code behavior.

Use the server for managed, shared, or distributed replication. Its local mode is a durable single-node install; api and worker use external PostgreSQL. It does not migrate CLI files or state.

The server package requires Java 17, but not Maven, npm, Docker, or a system PostgreSQL installation. Extract it and start the local server:

tar -xzf ReplicaDB-server-1.0.2.tar.gz
cd ReplicaDB-server-1.0.2
./bin/replicadb-server start local
./bin/replicadb-server status

The first local start downloads and verifies the platform PostgreSQL bundle. Set REPLICADB_BOOTSTRAP_ADMIN_USERNAME and REPLICADB_BOOTSTRAP_ADMIN_PASSWORD for automation, or answer the hidden prompt from an interactive terminal. The server home defaults to ~/.replicadb; set REPLICADB_SERVER_HOME to change it. Keep the keyring and data/postgresql together when backing up. Warm-cache restarts do not need network access.

For source builds and development profiles, see CONTRIBUTING.md and docs/server.md.

Local single-node server without Docker

For a durable local installation, replicadb-server can manage a native embedded PostgreSQL process. This mode uses the same PostgreSQL repositories, Flyway migrations, Quartz scheduler, encrypted datasource catalog, and local job execution as the api profile; it does not start a separate worker.

The extracted package is the recommended durable local installation:

export REPLICADB_BOOTSTRAP_ADMIN_USERNAME='local-admin'
export REPLICADB_BOOTSTRAP_ADMIN_PASSWORD='<local-password>'
./bin/replicadb-server start local
./bin/replicadb-server status
./bin/replicadb-server stop

The first start downloads and verifies the platform PostgreSQL bundle from Maven Central. It does not require Docker or a system PostgreSQL installation, but it does require network access unless the bundle is already cached. The current release manifest covers macOS ARM64 and x64, Linux x64, and Windows x64; unsupported operating systems or architectures fail with an actionable startup error. By default, durable state lives under ~/.replicadb:

~/.replicadb/
  data/postgresql/       metadata database and job history
  cache/postgresql/      verified native PostgreSQL bundle and extraction
  security/master-key.json
  locks/
  run/
  logs/

Set REPLICADB_SERVER_HOME to move this complete local installation. Keep the security/master-key.json keyring with the database backup; losing it makes encrypted datasource credentials unrecoverable. An explicit REPLICADB_SECURITY_KEYRING_FILE can point to a separately managed keyring; the old REPLICADB_SECURITY_MASTER_KEY_FILE name remains a deprecated alias.

Stop the server before backing up or restoring data/postgresql and the keyring. The cached native bundle can be recreated if it is absent. Major PostgreSQL upgrades are not performed automatically; back up the local home before upgrading ReplicaDB and follow the release notes for any data-directory migration.

The embedded mode binds PostgreSQL to loopback and uses local HTTP session cookies. Put TLS or an authenticated reverse proxy in front of it before exposing the API beyond the local machine. It is a single-node convenience mode, not a replacement for the external PostgreSQL plus api/worker topology in DEPLOYMENT.md.

The distributed worker runtime uses the Phase 3.4 hybrid admission policy for approximate load distribution. The standalone CLI artifact remains Spring-free, accepts its existing options-file contract, and does not require the managed metadata database.

Stand Alone

System Requirements

ReplicaDB is written in Java and requires a Java Runtime Environment (JRE) Standard Edition (SE) or Java Development Kit (JDK) Standard E

readme truncated — read the full docs on github

Frequently asked questions

Is ReplicaDB free to use?

ReplicaDB is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does ReplicaDB do?

ReplicaDB is open source tool for database replication, designed for efficiently transferring bulk data between relational and non-relational databases

What is ReplicaDB written in?

ReplicaDB is primarily written in Java. Its source is publicly available at https://github.com/osalvador/ReplicaDB, and it has 500 GitHub stars.