This is my final qualifying work for the undergraduate ITIS 2019-2023
This project is a Go-based data processing application that performs the following tasks:
- Reads data from Write-Ahead Log (WAL).
- Filters the data based on specific criteria.
- Sends the filtered data to a message broker.
- Contains a module that reads data from the message broker.
- Converts the received data into a query.
- Writes the converted query to a database.
- Provides customizable filtering options to process specific data.
- Integrates with a message broker for seamless data transfer.
- Converts received data into query format for database insertion.
To run this project, ensure you have the following installed on your system:
- Go (version 1.20 or higher)
- Apache Kafka
- Nats
- Database
Follow the instructions below to get a local copy of the project up and running.
-
Clone the repository:
git clone https://github.com/CAMELNINGA/WAL-transport.git
-
Change into the project directory:
cd WAL-transports
-
Install project dependencies:
go mod download
-
Configure the project:
- Modify the configuration file (
deployments/config.yml
) to provide the necessary settings for your environment, including the message broker and database connection details.
- Modify the configuration file (
-
Up modules copy_deamon and save_deamon:
Example env copy_deamon in deployments/copy_deamon.env Example env save_deamon in deployments/save_deamon.env
docker compose up copy_deamon save_deamon --build
-
Build the project:
go build
-
Run the data processing component:
./wal-transport send deployments/config.yml
Note: Ensure that the message broker and database are running and accessible.
Contributions are welcome! If you wish to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b my-feature-branch
. - Make your changes and commit them:
git commit -am 'Add new feature'
. - Push to the branch:
git push origin my-feature-branch
. - Submit a pull request.
Please ensure that your code follows the project's coding style and conventions.
This project is licensed information in the LICENSE file.
For any inquiries or feedback, please contact rfvbkm0220@gmail.com.