A list of future improvements to consider the solution complete.
Critical features and behaviour that isn't met yet.
- Deferring long-running payments with ARQ.
- Storing stats in Redis which can be later retrieved for analytics purposes.
Nice to have features improving the DX and aiding codebase robustness.
- Invoke commands for running jobs easier, like: linting & formatting, sorting deps, testing, running the server, migrations etc.
- GitHub action to run linting checks and tests. (CI/CD)
- Documentation: class diagram, UX flowchart, microservice architecture, which shows how the system works.
Up next production-grade service improvements.
- Get ready for payment failures and ensure an auto-retry mechanism within a given timeframe.
- Store errors in Sentry.
- Keep logs in Logstash.
- Send stats to Elasticsearch. (Kibana)
- Add front-end for the API with Next.js.
- Monitor system and app metrics with Prometheus. (Grafana)
- Deploy the whole system in GCP, AWS, Azure.