Distributed Systems, Spring Cloud, Resilience, Event-Driven Architecture
Master the architecture and patterns of enterprise-scale microservices. This advanced course takes experienced Spring Boot developers through the complete microservices ecosystem: Spring Cloud for service discovery and configuration, circuit breakers and resilience patterns, event-driven architecture with Kafka, an API gateway, OAuth2 security with Keycloak, tracing and monitoring, and a CI/CD pipeline to Kubernetes.
Why microservices, when a monolith is the better choice, the core pattern landscape, and building your first Spring Boot service.
Spring Cloud's toolkit and the twelve-factor principles behind services that are easy to deploy, scale and operate.
A realistic licensing service: REST endpoints, layered design, internationalisation and HATEOAS.
Containers versus virtual machines, multi-stage Dockerfiles, and running a multi-service stack with Docker Compose.
Spring Cloud Config Server: profile-based configuration for every environment, with encrypted secrets.
Registering services with Eureka and three ways for services to find and call each other.
Circuit breakers, retries, bulkheads, rate limiters and fallbacks — keeping the system up when a service fails.
One entry point for every service: routes, predicates, filters and correlation IDs.
OAuth2 with Keycloak: access tokens, roles, and propagating tokens securely between services.
Asynchronous messaging with Kafka and Spring Cloud Stream, plus a Redis distributed cache.
Distributed tracing with trace IDs and Zipkin, log aggregation with the ELK stack, and metrics with Micrometer, Prometheus and Grafana.
A CI/CD pipeline from commit to Kubernetes on Amazon EKS with Jenkins. Capstone: deploy and monitor a complete multi-service system.
This is an advanced course. Ensure you have the right foundation before enrolling.
You must be comfortable building REST APIs, working with annotations (@RestController, @Service, @Repository), dependency injection, and Spring Data JPA. If you're rusty, refresh your Spring Boot knowledge before enrolling.
Understanding HTTP verbs (GET, POST, PUT, DELETE), status codes, request/response bodies, and API design principles. Microservices communicate via REST and async events.
OOP concepts (classes, inheritance, interfaces), collections (List, Map, Set), exception handling, and Java 8+ features (lambdas, streams).
Basic SQL queries (SELECT, INSERT, UPDATE, DELETE), relational database concepts, and familiarity with PostgreSQL or MySQL. Microservices each own their own database.
This course runs a full multi-container stack (Kafka, PostgreSQL, Keycloak, ELK and more) on your machine. Minimum: 64-bit i5 or equivalent with virtualization enabled, 16 GB RAM (32 GB is comfortable), 30 GB free SSD space. Please install Docker Desktop before day 1 and verify it works by running docker run hello-world.
Git & Version Control: Experience with Git, GitHub, or GitLab. You'll push code to repositories during labs.
Command Line: Comfort with terminal/bash commands. Kubernetes and Docker use CLIs extensively.
Linux Basics: Familiarity with Linux concepts (processes, environment variables, file permissions). Not required but helpful for Docker/Kubernetes.
Start here if you're new to Java. Learn variables, control flow, OOP, and Java 21 features.
↓
Build REST APIs, work with Spring MVC, Spring Data JPA, and Spring Security. This is the foundation for microservices.
↓
Ready to take this course! You've mastered single services — now learn distributed systems.
Already have Spring Boot experience? You can skip to Spring Microservices directly if you:
Take 5 minutes to assess your Spring Boot knowledge. We'll recommend the right starting point for you.
Talk to an Advisor →Take your Spring Boot skills into distributed systems, cloud-native patterns and event-driven architecture.
Teams planning or running a move from a monolith to microservices.
Engineers running Java services on Docker and Kubernetes who need to understand how they are built.
Design resilient, observable, secure microservice systems — and know when not to use microservices.
All courses are taught by Code College's senior development trainers — practitioners with real-world microservices experience, backed by over 20 years of professional developer training since 2004.
You build distributed systems from day one. Every pattern is reinforced with real exercises and a complete microservices architecture you keep and can deploy.
Join 100% live online from anywhere, or hybrid — one or two days a week at our Midrand campus and the rest live online. Full-time face-to-face attendance can be requested, and is possible when an onsite group class is running. Full lab environments included.
Receive a Code College certificate on completion — recognised by enterprise employers across South Africa and globally.
Spring Boot proficiency — building REST APIs, dependency injection and Spring Data JPA — plus Java fundamentals and basic SQL. Our Spring Boot course is the recommended preparation.
The course runs a full multi-container stack on your machine. You need a 64-bit i5 or equivalent with virtualisation enabled, 16 GB RAM (32 GB is comfortable) and about 30 GB of free SSD space, with Docker Desktop installed before day one.
A complete multi-service system that brings every pattern together — configuration, discovery, resilience, messaging with Kafka, security, tracing and monitoring — deployed with Docker and Kubernetes.
Individuals join live online from anywhere, or hybrid — one or two days a week at our Midrand campus and the rest live online. Group courses run live online or hybrid, with fully onsite delivery at our Midrand campus optional, on request. Contact us for a group quote.
Yes. Code College is a B-BBEE Level 4 contributor and training spend qualifies as skills development under the B-BBEE scorecard. The course fee also counts toward your SDL (Skills Development Levy) spend.
Book the Spring Microservices In-Depth Course today — full-time (5 days) or part-time. Johannesburg and online. Build production-grade distributed systems.