- Clean Architecture
- Microservice Architecture
- Youtube channels
The Art of Development
,Maksim Zhashkevych
- Robert C. Martin
Clean Architecture
(https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) - RabbitMQ guides
- Minio guides
Service accepts the incoming picture in .jpeg or .png format and then sends it to the channel to optimize it and save it in the storage in formats 25, 50, 75 from 100 quality including original quality. Service also have a API for download an optimized image from storage by image id and image quality.
The service must be responsive and respond quickly to and accept incoming requests. Each request should be answered depending on the result, including http status.
This service accepts incoming requests from the client and sends them to the photo consumer.
Julien Schmidt HTTP
- http rest handler!RabbitMQ
- message broker to queue with consumer image serviceMINIO
- storage to download/upload fileCleanenv
- greate env framework for environments
POSTMAN link: https://www.getpostman.com/collections/45677b9e5b12ef5ddc08
This service accepts incoming images from the producer service optimizing and save into a storage.
RabbitMQ
- message broker to queue with producer service!MINIO
- storage to download/upload fileCleanenv
- greate env framework for environments
Configure a storage and message broker in docker container.
docker compose up rabbitmq minio
or
make local
Next step a run producer and consumer..
PRODUCER:
cd producer
go mod tidy
go run cmd/app.go
CONSUMER:
cd consumer
go mod tidy
go run cmd/app.go
Run all services and dependencies together
make up
or
docker-compose down && docker-compose up --build