A cloud ready service designed to upload images and scale them based on a configuration.
- Dynamic configuration for scaling pictures.
- Session and messaging management supported by Redis.
- Status and health http endpoints for each process.
- Asynchronous scaling of images on a separate backend process.
- All data external to containers.
- MongoDB using GridFs as first storage layer.
- Api doc with swagger.
- Java 1.8+ (Open JRE/JDK)
- Maven
- Docker compose
This project has a docker-compose.yml file. There is a nice compile and run script in the project root that you can use to run unit tests and bring up all the stack easily:
# First, param the name for your app. Second param the exposed port on your machine.
./build_and_run.sh "Your desired service name" 8080
Go to http://your-host:port
mvn test
mvn integration-test
A layered architecture with some domain driven design traits. It covers many best practices and patterns to ensure the good reading and scalability of code. It has a clever separation of all infrastructure layers like storage, messaging analyzers and more.
An updated doc of the api can be reached through swagger at
http://your-host:port/swagger-ui.html
All the vars can be found in the docker-compose.yml file
All can be found at:
http://your-host:port/actuator