- Docker Compose
Given the need to pull some docker containers, it'd be beneficial to start that process:
docker-compose up
This repository represents an application that accepts a list of files via a
POST /download
[
{
"filename": "fname.png",
"url": "https://url.com/to/file.png",
"gcsUrl": "gs://bucketname/path/to/file.png" # Optional
}.
...
]
The repo in it's entirely contains a few components (loadgen-server, main.go, dependency-server). Here is a Flow Diagram that depicts the lifecycle of the repo.
The responsibility of the application under question is contained within the main.go
application. It's responsibility is to decode the request (list of files), compile them into a zip, and stream them to the client.
This service has a mixture of end-users, and it's importance and footprint has grown. We're starting to hear that there are errors in the functionality delivered to end-users, and would like help debugging and correcting some of the errors.
In the midst of this work, please make an effort to make logical improvements to the service and up-level our practices. Do your best to describe your intentions and coach us as team members on how we should think about making changes.
- Help us identify the effectiveness/failures of this service
- Suggestion of how this could be quantified/monitored
- Make changes to reduce the failure rate
- Suggest and possibly implement structural changes to the code for better maintainability
- Discuss how we could operate this service more effectively in production
- What specific things could we do such that we aren't caught off guard by a client bug report
Open main.go for assessing code footpring and editing
docker-compose logs -f nginx
docker-compose logs -f code-challenge-golang