The course requires a decent understanding of Java. A dedicated course can be found here.
- JDK Development Kit 21
- IntelliJ IDEA [Plugins: Envfile]
- Apache Maven
- Apache JMeter
- EvidentlyAI
- mlflow
- Docker Desktop
- Microservices Patterns; Richardson
- Spring Microservices in Action; Carnell, Sánchez
- Microservices with Spring Boot 3 and Spring Cloud; Larsson
Your pull requests are very welcome! To contribute, please refer to this guide. For a more general introduction to GitHub, refer to this page. By contributing to this repository, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.
- Monolithic and distributed architectural styles
- The transition towards microservices architectures
- Introduction to Spring Boot as microservice chassis
- Building a basic layered microservice with Spring Boot
- Packaging a project with Maven
M3 Containerization and orchestration
- Containerization vs virtualization
- Building docker images (single-layer, multi-layer, Buildpacks, Jib)
- Container orchestration with docker compose
- Synchronous communications and their limitations (Rest/GraphQL/Protobuf)
- Asynchronous messaging systems (RabbitMQ)
- Spring Cloud Stream and its abstraction over messaging systems
- Service discovery
- Service routing
- Centralized configuration
- What is resiliency and why it is relevant
- Client-side resiliency patterns
- Server-side resiliency patterns
- Resilience4j and its integration with Spring Boot
- What is observability and why it is relevant
- Instrumentation and maintenance costs
- Key observability stacks: ELK, Grafana, Jaeger/Zipkin
- Zero-code instrumentation with OpenTelemetry
M8 Distributed transaction management
- Issues of database transactions in distributed contexts
- The SAGA pattern
- The Conductor orchestration framework
- The DevSecOps model and its benefits in distributed contexts
- Automating code linting, security testing, and deployment with GitHub Actions
- The MLOps model and its benefits in distributed contexts
- Tracking ML experiments with MLFlow
- Observing ML models in production with EvidentlyAI