- Based on the Microservice Review rubric
(*)
: not a yes-no question
Use the following legend for Status
:
:heavy_check_mark:
(:heavy_check_mark:) for "all good"- (empty) for "needs work" or if unsure
N/A
for "does not apply"
Item | Status |
---|---|
Is there a README file? | ✔️ |
Does the README file specify an owner? | ✔️ |
Is the documentation sufficient to install and run the microservice locally? | |
Does the README state its dependencies on other microservices? | |
Does the README state its clients? | |
Is the API documented? | N/A |
Is the architecture explained? (e.g. architecture diagram) | |
Are operational processes explained? (e.g. deployment, DB schema changes, data loaders) |
Item | Status |
---|---|
Is data access cleanly separated from models, i.e. is there a DAL? | N/A |
(*) What is the linter output on the codebase? |
|
Is there no duplicate code? | |
Is there, in general, one way to do things? | |
Is there no dead code? | |
Are variables, functions, files, classes, etc. properly named? | |
Is the code performant? (e.g. avoids queries in loops, uses sets where appropriate) | |
Is the code architected to be scalable and flexible? | |
Is the API RESTful and well-designed? | |
Are there no passwords or keys stored in plaintext in the repo? | |
Is the code documented? (e.g. docstrings) | |
Does data (e.g. json, tables) have a schema? | |
Is there a pre-commit yaml and is it extensive? |
Item | Status |
---|---|
(*) What is the unit test coverage? |
|
Are there appropriate integration and acceptance tests? |
Item | Status |
---|---|
Is there CI? | ✔️ |
Does the CI run on every PR? | ✔️ |
(*) How long does it take for PRs to be merged? |
|
Are there no old outstanding PRs? | |
Does it use Galaxy (where applicable)? | N/A |
Does it have a dev environment? |
✔️ |
Does it have a stage environment? |
✔️ |
Does it have CloudWatch alarms? | |
Does it have Rollbar set up? | ✔️ (Crashlytics) |
Are Grafana dashboards complete? | N/A |
Are application logs available in Kibana and are the fields properly parsed? | N/A |
Is there a PagerDuty rotation in place? | ✔️ |
Is code review taken seriously and done rigorously? | |
Are there quick smoke tests (e.g. curl one-liners) for local development to make sure that the environment is working as expected? |