Seamless Data Sync: How to Integrate SymmetricDS with RabbitMQ for Real-Time Updates

SymmetricDS now supports loading data and changes into RabbitMQ, so you can capture changes in your relational database and sync them in near real-time to RabbitMQ in a variety of formats. 

To begin setup a SymmetricDS node that will connect to an existing relational database. Through the Add Table(s) Wizard provided with SymmetricDS you can configure all the tables on the source database that should be replicated. Once you have your source node in place and the appropriate tables to be replicated to RabbitMQ you are all set to begin the RabbitMQ configuration.

Within SymmetricDS, add a node that will use the “Rabbit MQ” database dialect.

Using the Connect Database Wizard in SymmetricDS a Rabbit MQ node can be configured. Adjust the URL as needed to include the correct host and port number. You will then want to enter your RabbitMQ username and password into the “User Id” and “Password” fields, respectively.

Choose your Settings for RabbitMQ Next, you will select your settings within SymmetricDS.

  1. First, you will choose your “Output Message Format”. This determines if SymmetricDS will output your message in JSON, XML, or CSV.
  2. Then you will choose “Message By,” which determines how messages will be sent. You can choose between “Batch”, which means SymmetricDS will send one message for each batch containing all changes, and “Row”, which means SymmetricDS will send one message for each change captured.
  3. Next you will set your “Queue Name.” This is the queue name you wish to configure with SymmetricDS. If you enter a value for this field, it will override the “Queue By” selection. If you leave this field blank, queue(s) will be created based on the “Queue By” field.
  4. Next, you will enter your “Queue By” selection. This determines what queues will be used to load data to. You can choose between “Table”, “Channel”, and “User.” If you choose “Table” a queue with the name of the table will be created for each table in the batch. For example if you are sending information from a table called “my_table”, a queue called “my_table” will be created and the messages will be sent there. If you choose “Channel” a queue with the name of the channel will be created for the name of the channel of the batch. For example, if the batch is sent on the “reload” channel, a queue called “sym_reload” will be created and the messages will be sent there. If you choose “User” a queue with the name of the user will be created to load data to.
  5. Finally, you can choose if you want to use SSL or not by checking the “Use SSL” box.

Once you have configured the advanced settings, complete the wizard and your RabbitMQ node will be ready.

Starting the load to RabbitMQ

Using the Load Data Wizard you can send an initial load of data from your source relational database into RabbitMQ. 

Verify

And, you’re all set to start making some changes to your source database and verify that the changes are routing correctly to your RabbitMQ Queue(s).

Integrating SymmetricDS with RabbitMQ opens up powerful possibilities for real-time data synchronization. By following the straightforward setup process, you can effortlessly capture changes from your relational database and deliver them in various formats to RabbitMQ. This seamless connection not only enhances data flow but also ensures that your applications stay up-to-date with the latest information. As you implement these configurations, you’ll be equipped to verify the efficiency and reliability of your data streams, paving the way for more dynamic and responsive systems. Embrace the potential of this integration and elevate your data management strategy to new heights!