Microservices and Distributed Systems thumbnail

Back to courses

Microservices and Distributed Systems

Build and deploy microservices, mastering modern software architecture techniques.

Level: Mid & Senior Engineers

author image


Course by

This course includes:

10 Hours

English Subtitles

Certification Upon Completion

Lifetime Course Access

Access to Discord group

15 Days Money Back Guaranteed


Have a coupon? Enter at checkout

The tech stack you will in this course

spring logospring
spring-boot logospring-boot
spring-data-jpa logospring-data-jpa
docker logodocker
kubernetes logokubernetes
aws logoaws
linode logolinode
bash logobash
intellij logointellij

What you'll learn

Microservices Development

Communication Techniques

Service Discovery & API Management

Containerization & Orchestration

Security Implementations

Database & Tracing Integration

Message-Driven Communication

API Gateway Strategies

Deployment & Optimization

Kafka Message Processing

Managed Kubernetes Cluster

API Key Authentication

OAuth2 & KeyCloak Integration

Production Deployment Best Practices

Welcome to Microservices and Distributed Systems - one of the most in-demand courses on the platform and for a good reason, microservices are quickly becoming the dominant framework in the field and a critical skill for a professional Java developer.

The course will be a lot of hands-on, building a distributed application and learning the exact technology stack that makes a microservice tick.

  • 20-chapter roadmap made up of over 10 hours of video content: From fundamentals of the architecture to application deployment.
  • 156 lessons: A step-by-step practical guide through every technology.
  • Microservices Application building: A comprehensive guide to give you all the knowledge needed to deploy components yourself.
  • Dedicated Discord Channel: Where you will be able to find answers to all your questions and chat with me and the students.

Who is the course for?

Simply put, anyone who is involved in software development, from developers, architects, testers and even ops professionals.

As microservices are becoming increasingly popular, more and more organizations look to adopt them in order to improve their software development processes. In turn learning, microservices can help you to improve your career prospects and earning potential.

So if you are willing to experiment with new technologies and are looking for courses trusted by thousands of professionals, keep scrolling to find out what they have to say.

Why learn Microservices?

Learning microservices is essential for any programmer looking to remain competitive in the tech industry. Microservice architecture offers massive advantages over traditional monolithic architectures, such as greater scalability, the overall speed of development, and ease of updates.

The ability to break complex services into individual, independently deployable services and it also provides developers with more flexibility when building applications, allowing them to tailor their solutions according to the specific needs of the project owned by small teams.

In addition to having a positive impact on development cycles, microservices are becoming more popular in the IT industry as a cost-effective and efficient solution compared to traditional monolithic architecture.

By studying microservices, you can gain an edge in this emerging market and leverage your knowledge to create robust and reliable applications that match customer demands.

Microservices career graph

Big-Tech using Microservices

WAANG companies

Why would the Microservices course be right for you?

  • Gain experience building all of the common patterns in distributed systems such as configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions and cluster state
  • Taught by a teacher whose microservices tutorials have been viewed over 800,000 times on YouTube
  • Access to the 55,000+ community of coders, many graduates of the microservices course
  • Getting help when you need it. Post a question on the dedicated discord channel or message me directly, you will get all the support you need to progress through the course

Here is why you shouldn’t waste your time and enroll now:

When trying to learn a complex concept like microservices, It’s easy to spend dozen of hours wasting time searching online instead of actually learning

Disjointed tutorials, confusing articles and a lack of support plague so many of the online resources that simply don’t keep up with what you need. With Amigoscode you will be learning from a trusted premium resource taught to you by a Java professional with years of microservices framework experience from his Software Engineer career at major companies in London.

The experience of students speaks for themselves and I hope soon you too will soon share your success story!

Course Curriculum

This course has 24 sections including exercises

Getting Started

1 - Few Words Before We Begin


2 - Join The Community


3 - Course Overview


4 - Resources and Links

Bootstrap With Maven

1 - Maven


2 - IntelliJ


3 - Open The Project with IntelliJ

4 - Maven Parent Module

Your First Microservice


1 - Spring Cloud


2 - Create Your First Microservice

3 - Model Controller and Service

4 - Postgres and PGAdmin on Docker

5 - Connecting to DB

6 - Databases

7 - Section End Git Commit

Microservice Communication via HTTP

1 - Intro

2 - Fraud Microservice

3 - Database Setup for Fraud

4 - Fraud Controller Service and Repository

5 - RestTemplate

6 - Testing Microservice Communication

7 - Section End Git Commit

Service Discovery with Eureka

1 - Service Discovery

2 - Spring Cloud Dependency

3 - Setting up Eureka Server

4 - Dashboard

5 - Eureka Clients

6 - @LoadBalanced

7 - Section End Git Commit

Open Feign

1 - Open Feign

2 - Feign client Feign

3 - Using Fegin Client

4 - Microservice Communication With Feign

5 - Section End Git Commit


1 - Exercise

2 - Solution

3 - Section End Git Commit

Distributed Tracing

1 - Distributed Tracing

2 - Adding Sleuth

3 - Zipkin

4 - Zipkin Container

5 - Spring Cloud Sleuth Zipkin

6 - Zipkin Dashboard

7 - Section End Git Commit

Api Gateway With Spring Cloud Gateway

1 - What are Load Balencers

2 - Load Balancer Algorithms

3 - Load Balancer Health Checks

4 - Spring Cloud Gateway

5 - Bootstrap API Gateway

6 - Configuring API Gateway

7 - API Gateway in Action

8 - Section End Git Commit

Message Queues

1 - Why a message queue

2 - Simulate Slow Response

3 - AMQP & RabbitMQ

4 - Kafka RabbitMQ and SQS

5 - AM


1 - Rabbit MQ Container

2 - AMQPTemplate and JacksonConverter

3 - SimpleRabbitListenerContainerFactory

4 - Notification Queue Configuration

5 - Queue Topic and Binding

6 - Message Producer

7 - Publishing Messages

8 - Customer Microservice Publishing Messages To Queue

9 - @RabbitListener

10 - Zikin Dashboard With RabbitMQ

11 - We made it. Our code is Asynchronous

12 - Section End Git Commit

Packaging Microservices to Runnable Jar

1 - Intro

2 - Maven Compiler Plugin

3 - Spring Boot Maven Plugin

4 - Installing Root and Individual Modules with Maven

5 - Running all Jars

6 - Section End Git Commit

Packaging Jars to Docker Images

1 - Intro

2 - What is Docker

3 - Docker Images and Containers

4 - Docker Architecture

5 - Docker Registries

6 - Docker Login

7 - Spring Boot Maven Plugin and Jib

8 - Jib Maven Plugin

9 - Jib Sub Module Configuration

10 - Build and Push

11 - Exercise

12 - Exercise Solution

13 - Adding Eureka Server and ApiGW to Docker Compose

14 - Docker Network

15 - Spring Profiles

16 - ApiGW and Eureka Server Docker Containers

17 - Exercise 2

18 - Exercise 2 Solution

19 - Section End Git Commit

Kubernetes AKA k8s

1 - Intro

2 - What is Kubernetes

3 - Master and Control Plane

4 - Worker Nodes

5 - Running Kubernetes Clusters

6 - Minikube

7 - Installing Kubectl

8 - Kubernetes Hello World

9 - Pods

10 - Deployments

11 - Services

12 - Service Discovery

Deploying Postgres RabbitMQ and Zipkin to k8s

1 - IntelliJ k8s Plugin

2 - Never Deploy Postgres on k8s. Only for local testing

3 - Postgres YAMLs

4 - Postgres Running in k8s

5 - Exercise

6 - Exercise Sol

7 - Section End Git Commit

Refactoring Microservices for k8s

1 - Intro

2 - No need for API Gateway Anymore

3 - Disabling Eureka

4 - Refactor Feign Clients


6 - Kube Profile

7 - Building new Images and Testing Docker Compose

8 - Section End Git Commit

Deploying Microservices to k8s

1 - Section Overview

2 - Customer YAMLs

3 - Customer Up in Running in k8s

4 - Exercise

5 - Exercise Solution

6 - We done it. Microservices running in k8s

7 - Section End Git Commit

Managed Kubernetes Cluster with Linode

1 - Commands for this sections

2 - Linode

3 - Create K8s Cluster

4 - Dashboard Overview

5 - Kubernetes Dashboard

6 - Connect To Cluster Using kubectl

7 - Postgres

8 - Zipkin and LoadBalancers

9 - RabbitMQ

10 - Deploying Microservices

11 - Testing deployment

12 - Managed Postgres Database

13 - Connecting to Managed Database

14 - Connecting to Managed Database

15 - Override DB Connection Details with Env Variabales

16 - Apply Customer yaml

17 - Apply Notification and Fraud

18 - Testing everything

19 - Destroy resources


1 - Intro

2 - What is Kafka

3 - Kafka Broker

4 - Bootstrap Project

5 - Topic

6 - Kafka Producer Config

7 - Kafka Template Send

8 - Kafka Consumer

9 - ConsumerConfig

10 - @KafkaListener

11 - Restful Api and Kafka Integration

12 - Custom Objects

13 - Trusted Packages

14 - Deployment and Managed Kafka

15 - Spring for Apache Kafka Documetation

16 - Outro

Bringing Back API Gateway for Security

1 - Bring Back APIW and Eureka Server

2 - Enabling Eureka Client

3 - Starting All Services

4 - Testing POST request

Security - API Key Authentication

1 - API Key Authentication

2 - Key and Applications Overview

3 - ApiKeyAuthorization Filter

4 - Ordering the Filter

5 - Testing the Filter

6 - Api Key Validation Overview

7 - Extracting the Route

8 - Attaching ApiKey to request

9 - Accesing Key From Request Header

10 - FakeApiAuthorizationChecker

11 - Testing API Authentication Flow

ApiKey Management App

1 - Coming soon

Oauth2 & KeyCloak

1 - Coming soon


1 - Don't Use Spring Cloud Config Server

2 - Vault and Secrets Management

3 - Reporting Service

4 - Deployment

5 - Outro

What our students say

If you have any other questions - please get in touch

Joan testimonial cover
author image


Software Developer@Paramount Commerce

Kaplan testimonial cover
author image


Data Scientist

Loc testimonial cover
author image


Software Engineer@BOSH

Mohammed Ali testimonial cover
author image

Mohammed Ali

Software Engineer@TD

Vladislav testimonial cover
author image


Java & Kotlin Developer

Questions & Answers

What makes Amigoscode programming courses different from others?

Amigoscode offers unique, practical, and industry-relevant programming courses taught by experienced instructors. We focus on real-world applications, giving you the skills you need to excel in your career.

Can I purchase your courses through my company's training budget?

Yes, many of our students purchase our courses through their company's training budget. Our courses are considered a valuable investment in employee skill development, and they can be expensed as part of your company's training and development initiatives.

How can Amigoscode courses help me advance my programming career?

Our courses are designed to bridge the gap between theory and practice. You'll gain hands-on experience, work on real projects, and build a portfolio that will impress employers and clients, opening up new opportunities for career growth.

Do you offer any certifications upon course completion?

Yes, we provide certificates of completion for all our courses. These certificates are recognized in the industry, and they can help you showcase your skills to potential employers or clients.

Can I access the course material at my own pace?

Absolutely! Amigoscode courses are self-paced, allowing you to learn at a speed that suits your schedule. You can revisit the material whenever you need, and you have lifetime access to the course content.

Do I need prior programming experience to enroll in your courses?

No, our courses are designed to accommodate all levels of learners. Whether you're a beginner looking to start your programming journey or an experienced developer wanting to enhance your skills, we have courses suitable for you.

What kind of support do I get during the course?

We provide extensive support to our students through discord. You'll have access to a community of learners and can ask questions, share your progress, and collaborate with fellow students. In addition, our instructors are available to help with any challenges you encounter during the course.

What is your refund policy?

We offer a 15-day refund policy. If you're not satisfied with your course within the first 15 days after purchase, we will provide a full refund, no questions asked. Your satisfaction is our priority.

Featured on

business-insider image
docker-captain image
linkedin image
head-first-java image

Microservices and Distributed Systems

Engage in a dynamic and interactive learning experience as you complete exercises and projects.