Skip to content

A distributed application to synchronize product sales databases between a Head Office (HO) and two Branch Offices (BOs) using RabbitMQ message queues. Each BO operates independently with limited internet connectivity and syncs data to the HO. Implemented in Java with JDBC for MySQL databases.

Notifications You must be signed in to change notification settings

anasch07/DB-Synchronization-with-RabbitMQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DB Synchronization with RabbitMQ

Description

This consists of 2 sides:

  • 1 Head Office
  • Multiple Branch Offices

Each has the following SQL Table structure that represents product sales locally:


Using SQLite for the database with SQLAlchemy as an ORM.

Features

  • Each office can insert new product sales, edit & delete them.
  • Branch offices can send the changes done to their local database to the Head Office via a RabbitMQ Broker.
  • Head office can take the changes from RabbitMQ Broker & apply them to the local database.
  • RabbitMQ Connection is required only when synchronizing.

How to use

Example of how to use can be found in bash scripts:

  • BO1.sh: Start a Branch Office with ID BO1 (ID Used for queue name)
  • BO2.sh: Start a Branch Office with ID BO2 (ID Used for queue name)
  • HO.sh: Start a Branch Office with ID HO

Requirements

Can be found in requirements

About

A distributed application to synchronize product sales databases between a Head Office (HO) and two Branch Offices (BOs) using RabbitMQ message queues. Each BO operates independently with limited internet connectivity and syncs data to the HO. Implemented in Java with JDBC for MySQL databases.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published