get-what-you-put
Specification
- Given payload it will store it in the DB and then it will serve as an API.
- There will be 2 API's:
- POST
- To put a json in the DB and crate a hash out of it
- GET
- Given a hash, return the JSON payload corresponding to the hash
- POST
Best Practices
- Coding standards
- Pre-Commit Hooks
- Linting
- Build and Unit Test
- Pre-Commit Hooks
- Every Pull Request is:
- Built
- Unit Tested
- Code Coverage Reported in PR
- Functional/Integration Tested
- Security Standards tested
- Every Merge to master:
- All things in PR
- Artifact is versioned and stored to "an" artifact repository
- Deployment
- A docker image is created with the environment required for the artifact to serve request
- The deployment is done on a Kubernetes stack
- Logging
- All the system health metrics are logged to log server like a splunk or elastic searching
- Dashboard for all the monitoring metrics
- Analytics
- All the business metrics flow into a server
- Dashboard for all the analytics metrics to be tracked
- Failure analysis
- How does the system react when something is down ?
- Databse is down
- API server is down
- How does the system react when something is down ?