This project aims to be a good example of how modern software systems are made. It'll demonstrate all modern best practices in software development, which includes both the architecture and the used technologies.
- Client application with React
- Facebook and Google authentication with OpenID Connect (OAuth 2.0)
- Microservice Architecture
- REST services with Kotlin Spring Boot and with Go
- Reactive programming with Spring Webflux
- Multiple AWS services (DynamoDB, EC2, ECR, etc)
- Containerization with Docker
- Deployment with Kubernetes
- CI/CD with Jenkins
- Swagger UI for the REST APIs with proper unit testing for high code coverage
- Service Discovery with Spring Eureka
- RabbitMQ/Kafka for communication between the services
- Saga (Ochestrated/Choreographed) and Circuit Breaker patterns implemented
- Terraform modules and Helm charts for automated infrastructure
I plan to go through all the covered topics step-by-step in a Medium article.
Stay tuned. It'll be published here.