JAVAX-MP
New Microservice Design Patterns Implemented with Spring Cloud in a Kubernetes Environment
Description
The course provides an overview of microservice design patterns, the associated Spring Cloud projects, and a conceptual introduction to Kubernetes.
Due to the course length, it is primarily theoretical, with source code examples and deployment to a Kubernetes environment presented in a demo format.
The course compares monolithic, modularized, and microservice architectures and discusses how to transition from a monolithic system to a microservice approach.
Spring Cloud projects are covered in detail in the Key Spring Cloud Projects in Practice (JAVAX-SPCL2) course, which is much more hands-on.
Outline
- Comparison of monolithic, modular, and microservice applications
- Characteristics, advantages, and disadvantages of microservice applications
- Introduction to microservice design patterns
- Transaction script
- Domain Driven Design: bounded context, aggregate, Ubiquitous language
- Clean architecture
- CQRS
- API composition
- Backend for frontend
- Protocols and formats
- XML, JSON, Protocol Buffers, Avro
- REST
- GraphQL
- gRPC
- Protocol translation
- Circuit breaker
- API gateway
- Messaging, Kafka
- Transaction management: transactional outbox, sagas, choreography, orchestration
- Contract-based testing
- Security: OAuth 2, authentication and authorization
- Externalized configuration, deployment infrastructure-based configuration
- Observability
- Metrics
- Tracing
- Logging
- Deployment, containerization, orchestration, Kubernetes
- Service registry, deployment infrastructure-based service registry
- Sidecar containers, concept of service mesh
Prerequisites
A solid knowledge of Java programming and familiarity with software architectures are required.
As some of the course materials are in English, basic English reading skills (at documentation level) are necessary. The training is delivered in Hungarian, based on Hungarian-language slides.