Evaluating a new software product can be quite a challenge with so many products on the market and limited time and resources during the evaluation process. Through this blog I hope to present to you a quick overview of the fundamental building blocks of SymmetricDS in order to get your evaluation off on the right track.

Installation

SymmetricDS is a java based product so it is packaged as an executable jar which will has the ability to open a graphical installer or a command line installer. During the installation process you will have the option to run as a service as well as select which ports the product will run against. These settings can be changed later through property files if you happen to select something during installation that requires changes.

For more details see the installation documentation.

Running

Once everything is installed you will need to ensure that SymmetricDS is running. There is a control center panel that can be used as a diagnostic tool to determine if the product is running and which ports it is utilizing. The control center also indicates if SymmetricDS is running as a service or allow you to install as a service. Depending on your operating system the control center might have created a shortcut on your desktop. If not it is available in the installation /bin directory by running the file named symcc.

  If you are running the professional version you will have access to the web based console once the tool is running where you can configure and manage your solution.

Nodes

The principle building block of a SymmetricDS network is the master node. This is the node where all your setup is generally done and serves as the primary node in your network to register other nodes. SymmetricDS uses a JDBC connection for every node in your network. This will allow the node to store configuration as well as all runtime synchronization information. Through the professional version you will automatically be prompted to setup a master node and provided a wizard which will walk you through the steps necessary to create this node.

Configuration The next step is to tell SymmetricDS which data you would like to synchronize. Below are the minimum configuration requirements to setup a single direction sync.

  • 2 Groups
  • 1 Group Link
  • 1 Router
  • 1 Table Trigger
  • 1 Table Routing (also known as, Trigger Routers)

Groups are a logical grouping of nodes so that configuration can be shared across many nodes. A simple example of two groups might be "corp" and "store" in a retail environment.

Group Links tell SymmetricDS how two groups will communicate. For example, the store may pull information from the corp.

Routers act as the vehicle which utilizes the group link in order to send information. A default router is available for the most basic sync scenarios to transport information across a group link.

Table Triggers serve as the method to capture changes in your data. They represent a single table in your database.

Table Routing is the relationship between a table trigger and a router. This is final piece in building a full synchronization. Once this is created the table trigger can be created and data capturing will begin followed by synchronization.

  The focus of this blog was around data synchronization although file synchronization is also possible through SymmetricDS. The majority of the architecture remains the same for file synchronization with the exception of using the File Triggers and File Routing components.

For more details see the configuration documentation.

Summary

Once you have achieved synchronization for your proof of concept you are ready to explore and expand upon the variety of additional features the product has to offer.

If you run into any issues be sure to check out our JumpStart program for further assistance.



Josh Hicks
Author: Josh Hicks

Josh has worked in the IT industry for over 15 years as a developer, tech lead, and architect. He has worked across a variety of businesses including retail, telecommunications, eduction, and healthcare. When he is not developing he enjoys whatever sporting event might be taking place.