mycdc/README.md

54 lines
1.3 KiB
Markdown

# MyCDC - MySQL change data capture
Application to run asynchronous operations based on DB changes. It is divided
into three services:
- RabbitMQ: Service that allows the exchange and queuing of messages between
applications.
- Producer: Reads and filters changes from the DB binary log and adds the
relevant messages to each RabbitMQ queue.
- Consumer: Obtains the elements from the queues and performs the necessary
operations asynchronously.
## Environment setup
Because a bug with MariaDB wich it's fix is pending to be merged into main
project branch, a *zongji* fork must be cloned into project root directory.
More info at https://github.com/nevill/zongji/issues/143
```text
git clone https://github.com/juan-ferrer-toribio/zongji.git
cd zongji
git checkout fix-143
npm install
```
Apply *zongji.sql* script into DB.
Copy *producer.json* and *consumer.json* from *config* directory to
*producer.local.json* and *consumer.local.json* and place your local
configuration there.
Install dependencies.
```text
npm install
```
## Run application
Start rabbit.
```text
npm run rabbit
```
Start producer and consumer.
```text
npm start
npm run consumer
```
## Built With
* [Zongji](https://github.com/nevill/zongji)
* [MySQL2](https://github.com/sidorares/node-mysql2#readme)
* [RabbitMQ] (https://www.rabbitmq.com/)