todos
todos copied to clipboard
Todos microservice
Todos
Playground for me to try out various libraries, tools, and techniques.
Development Approach
- [x] Minimal developer pre-requisites; Maven Wrapper
- [x] Verify source format matches Google Style; FMT or Spotless
- [x] Compilation without warning; ErrorProne
- [x] Test Driven Development; unit testing with coverage backstop; Surefire; Jacoco; JUnit 5; Assertj; EqualsVerifier; ToStringVerifier
- [x] Mutation testing; ensuring high-quality unit tests PITest or Stryker Mutator
- [ ] Consumer-Driven Contract testing; ensure independent paths to production
- [x] Document your architecture with tests; ArchUnit
- [x] Integration testing; Failsafe
- [ ] API documentation; dependable documentation extracted from proven integration tests; Spring REST Docs. Removed previous version as integration tests had to be run with unit tests and caused issues with coverage.
- [x] Static analysis; ensure source free from known defects; PMD, Spotbugs, Checkstyle
- [x] Software composition analysis; ensure dependencies free from vulnerabilities; OWASP Dependency Check
- [x] Acceptance testing; ensure system matches desired behaviours; CucumberJVM Docker Compose Plugin Await Plugin
- [x] Performance Benchmark testing; ensure local test matches representative performance goals; Gatling or Locust or K6
- [ ] Resilience testing; ensure fault tolerance; circuit-breakers
- [x] Containerization; lightweight, reliable distribution; Distroless Docker Images
- [x] Distribution management; GitHub Packages
- [ ] Technical documentation; lightweight architecture decision records; ADR
- [x] Product documentation; Github Pages; Just The Docs
- [ ] Todos Platform; infra as code