SymmetricDS is web-enabled, database independent, data synchronization/replication software. It uses web and database technologies to replicate tables between relational databases in near real time.
The software was designed to scale for a large number of databases, work across low-bandwidth connections, and withstand periods of network outage.
By using database triggers, SymmetricDS guarantees that data changes are captured and atomicity is preserved.
Support for database vendors is provided through a Database Dialect layer, with implementations for MySQL, SQL Server, PostgreSQL, HSQLDB, Oracle, and Apache Derby included.
Synchronization can be configured to push data (trickle-back) or pull data (trickle-poll) at an interval. SymmetricDS allows for 2-tier and even n-tier synchronization, such as the following:
· A farm of web server nodes fronting an enterprise-class general office database
· A handful of regional servers for synchronizing from the general office to remote geographical areas
· 1000(s) of store server nodes using a departmental class database to sync with a regional node
· 10(s) of Point of Sale (POS) register nodes using an embedded database to sync with a store server
Deployment options include the following:
· Web application archive (WAR) deployed to an application server such as Tomcat, Jetty, or JBoss
· Standalone service
· Embedded in an application
- Data Channels - Table synchronizations are grouped into independent channels
- Guaranteed Delivery - Synchronized data is guaranteed to arrive at the target destination. If a synchronization fails, the same batch of data will be retried until it succeeds or manual intervention is taken. All other data synchronization is halted for the failed channel only.
- Transaction Aware - Data updates are recorded and replayed with the same atomicity
- Centralized Configuration - All configuration is downloaded from a central registration server
- Multiple Deployment Options - Standalone engine, web application, embedded software component
- Data Filtering and Rerouting - Allows for localized passwords and sensitive data filtering/routing
- HTTP Transport - Pluggable transport defaults to Representation State Transfer (REST-style) HTTP services
- Payload Compression - Optionally compresses data on transport
- Notification Schemes - Push (trickle-back data) or Pull (trickle-poll data) changes
- Symmetric Data Protocol - A fast streaming data format that is easy to generate, parse, and load
- Plug-In API - Add customizations through extensions and plug-in points
- Two-Way Table Synchronization - The same table can be synchronized both to and from the host system while avoiding update loops
- Database Versioning - Specify data synchronization by version of target database
- Auto Database Creation - Optionally allow creating and upgrading of database schema
- Embeddable - Small enough to embed or bootstrap within another application (i.e. a POS application)
- Multiple Schemas - Supports multiple database schemas naturally through the existence of Data Channels
- Primary Key Updates - Captures the "before" and "after" data being changed, allowing updates to primary key data
- Remote Management - Administration through a Java Management Extensions (JMX) console
- Remote Database Administration - SQL can be delivered and run at remote databases via the synchronization infrastructure
- Initial Data Load - Prepare the satellite database with an initial or recovery load of data
In a hurry? Add it to your Download Basket!
- Bug: Java column transform cannot compile inner classes
- Bug: Firebird detection of auto increment columns should look for existence of trigger, not the generator itself
- Bug: Failed to create trigger when table contains timestamp with time zone column in Oracle
- Bug: Initial load failing on Firebird because of "Implementation limit exceeded. Block size exceeds implementation restriction"