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
Here are some key features of "SymmetricDS":
· 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
What's New in This Release: [ read full changelog ]
· 0001053: [Improvement] Verify that NOCOUNT is off for SQL Server before starting SymmetricDS. When NOCOUNT is turned on SymmetricDS won't work.
· 0001183: [Improvement] Add new property db.init.sql that allows sql to be run against a database connection right after it is created
· 0001184: [Improvement] Record ProcessInfo for server side registration process so it can more easily be monitored for errors