Welcome to the Image Processing Distributed Service! This service allows you to process thousands of images collected from stores in a distributed and scalable manner. Follow the steps below to set up and run the service locally.
git clone [email protected]:srrathi/distributed-image-processor.git
change directory to project root directory
cd distributed-image-processor
-
After setting up everything, open four terminal instances in the root of the project folder.
-
Run the following commands to start the 4 microservices in 4 terminals:
go run services/jobStatus/main.go
go run services/submitJob/main.go
go run services/storeVisits/main.go
go run services/consumer/main.go
- The services for the three endpoints and the image processing consumer will start working in a first-in-first-out manner.
Use the provided Postman Collection for testing the endpoints.
- Learn RabbitMQ for Event-Driven Architecture (EDA)
- RabbitMQ and Golang
- Go, RabbitMQ and gRPC Clean Architecture microservice
- https://dev.to/francescoxx/build-a-crud-rest-api-in-go-using-mux-postgres-docker-and-docker-compose-2a75
- https://semaphoreci.com/community/tutorials/building-and-testing-a-rest-api-in-go-with-gorilla-mux-and-postgresql
- https://rohinivsenthil.medium.com/rabbitmq-in-golang-getting-started-34c65e6c7f92
- https://medium.com/@ozdemir.zynl/rest-api-error-handling-in-go-behavioral-type-assertion-509d93636afd
- https://dev.to/kittipat1413/a-guide-to-input-validation-in-go-with-validator-v10-56bp
- https://www.sqlshack.com/getting-started-with-postgresql-on-docker/
- https://chat.openai.com
If you encounter any issues or have suggestions for improvement, feel free to open an issue or submit a pull request.
Happy processing!