Considerations
-
Why abstract third party package interfaces?
- Easily swap underling package with another.
- Write multiple implementations easily without changing code flow.
- Helps in testing.
-
Why elasticsearch?
- Easily index and query for analytics.
- Search in article body using full text search.
-
Why Docker compose?
- Packaged solution for users
- To be platform agnostic
- Spin up multiple services easily
-
Why Table driven tests?
- Helps in testing success and failure.
- Easy to maintain test table matrix.