Hi there! My name is Ali Gelenler. I'm here to help you learn microservices architecture while applying Clean and Hexagonal Architectures and using Domain Driven Design. In this course, you will focus on architectural aspects of microservices architecture and use Clean Architecture principles while developing each service. In the implementation of the domain layer you will also apply Domain Driven Design principles.
Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka
Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka is a 107-lesson 18 hours 2 minutes self-paced course by Udemy. Hi there!
Course facts
- Lessons
- 107
- Duration
- 18 hours 2 minutes
- Level
- All levels
- Language
- English
- Updated
- Instructor
- Udemy
- Price
- Premium
You can always use the latest versions for spring boot, and other dependencies in this course. I will be constantly updating the dependency version in the last section's lectures. You may check that to see the required code and configuration changes for updated versions. Also if you would like to use subtitles during the course, you can turn on the captions on videos as all lectures are updated with hand-written subtitles by choosing among over 20 different languages. I suggest using subtitles to make it easier to follow the lectures.
You will implement SAGA, Outbox and CQRS patterns using the 5 Spring boot Java microservices that you will develop using Clean and Hexagonal architecture principles.
You will also learn and use Apache Kafka as the event store, and use events to communicate between services, and to implement the architectural patterns.
The concepts that you will be learning and implementing are:
Spring boot microservices
Clean Architecture
Hexagonal Architecture
Domain Driven Design
Event-driven services using Apache Kafka
SAGA Architecture Pattern
Outbox Architecture Pattern
CQRS Architecture Pattern
Kubernetes on local using Docker desktop
Kubernetes on Google Cloud using Google Kubernetes Engine(GKE)
To communicate with the data stores in microservices you will use Spring Data JPA for PostgreSQL, and Spring Kafka for Kafka.
You will be following a hands-on approach and developing a project from scratch. You will have 5 microservices that communicate using events with Kafka as the event store.
You will also have multiple choice quizzes in each section to check your progress throughout the course.
At the end of the course you will understand how to run an event-driven microservices architecture with Clean and Hexagonal Architecture principles and with Domain Driven Design concepts. You will use Spring boot and Java to develop the microservices. You will also learn implementing architectural microservices patterns such as SAGA, Outbox and CQRS. In the end you will be able to deploy your application to Kubernetes on Google Cloud using Google Kubernetes Engine.
Who teaches Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka? Udemy
Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.
Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.
What lessons are included in Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka?
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Structure of the course Demo | 14:19 | |
| 2 | Project overview - Part 1 | 12:45 | |
| 3 | Project overview - Part 2 | 10:42 | |
| 4 | Setting up the environment | 05:53 | |
| 5 | Introduction to Clean and Hexagonal Architectures | 15:55 | |
| 6 | Designing components for Order Service using Clean Architecture | 11:43 | |
| 7 | Creating Order Service modules using Clean Architecture - PART 1 | 12:07 | |
| 8 | Creating Order Service modules using Clean Architecture - PART 2 | 07:58 | |
| 9 | Introduction to Domain Driven Design | 12:36 | |
| 10 | Designing Order Service domain logic components | 12:15 | |
| 11 | Creating common domain module with base Entity and Aggregate Root classes | 05:20 | |
| 12 | Adding value objects and domain events to common domain module | 13:27 | |
| 13 | Implementing Order Service domain logic using DDD - Order Aggregate Root | 16:01 | |
| 14 | Adding Order Entity implementation methods | 11:30 | |
| 15 | Adding state changing methods to Order Entity | 10:06 | |
| 16 | Implemeting Domain Events in Order Service domain layer | 09:21 | |
| 17 | Implementing Order Domain Service | 12:34 | |
| 18 | Implementing Order Application Service - DTO classes | 12:28 | |
| 19 | Adding Mapper class and port definitions to Order Application Service | 12:37 | |
| 20 | Implementing input ports in Order Application Service | 21:37 | |
| 21 | Implementing message publisher in Order Application Service to fire the events | 12:39 | |
| 22 | Implementing Order Track Command Handler | 06:15 | |
| 23 | Testing Order Service domain logic - Part 1 | 13:55 | |
| 24 | Testing Order Service domain logic - Part 2 | 07:28 | |
| 25 | Introduction to Apache Kafka | 06:19 | |
| 26 | Running Apache Kafka using Docker | 12:58 | |
| 27 | Implementing Kafka config data generic module | 08:42 | |
| 28 | Implementing Kafka model generic module | 07:01 | |
| 29 | Implementing Kafka producer generic module | 08:27 | |
| 30 | Implementing Kafka consumer generic module | 05:17 | |
| 31 | Application module: Adding Web Controller | 06:20 | |
| 32 | Application module: Adding Controller Advice | 11:00 | |
| 33 | Data access module: Adding Order JPA Entity | 10:46 | |
| 34 | Data access module: Adding JPA Repository & Adapter implementation | 12:04 | |
| 35 | Data access module: Adding Customer and Restaurant implementations | 13:27 | |
| 36 | Messaging module: Adding Mapper and Config Data | 06:20 | |
| 37 | Messaging module: Adding Publisher implementations | 14:32 | |
| 38 | Messaging module: Adding Listener implementations | 11:37 | |
| 39 | Container module: Adding spring boot starter class and config | 13:50 | |
| 40 | Container module: Explaining kafka consumer properties | 09:08 | |
| 41 | Container module: Adding Order database schema file | 05:22 | |
| 42 | Creating Customer Service & Running Order Service | 10:33 | |
| 43 | Domain core module: Adding Aggregate Root, Entity and Value objects | 12:28 | |
| 44 | Domain core module: Adding Exception and Domain events | 02:48 | |
| 45 | Domain core module: Implementing Payment Domain Service | 12:44 | |
| 46 | Application Service domain module: Adding Mapper, Config and Ports | 10:38 | |
| 47 | Application Service domain module: Implementing input ports - Part 1 | 10:52 | |
| 48 | Application Service domain module: Implementing input ports - Part 2 | 02:47 | |
| 49 | Application Service domain module: Refactoring fire event process | 12:23 | |
| 50 | Implementing Data Access module | 12:28 | |
| 51 | Implementing Messaging module: Adding Mapper and Publishers | 11:37 | |
| 52 | Implementing Messaging module: Adding Listeners | 05:08 | |
| 53 | Implementing Container module | 11:11 | |
| 54 | Domain core module: Adding Aggregate Root and Entities | 12:44 | |
| 55 | Domain core module: Adding Exception, Domain events and Domain Service | 07:14 | |
| 56 | Application Service domain module: Adding Mapper, DTO and Ports | 08:44 | |
| 57 | Application Service domain module: Implementing input ports | 09:43 | |
| 58 | Implementing Data Access module | 11:33 | |
| 59 | Implementing Messaging module | 09:06 | |
| 60 | Implementing Container module | 10:39 | |
| 61 | Introduction to SAGA pattern | 02:54 | |
| 62 | Implementing Order Payment Saga | 13:03 | |
| 63 | Using Order Payment Saga in Messaging & Implementing Order Approval Saga | 09:31 | |
| 64 | Testing the application end-to-end with SAGA pattern changes | 11:01 | |
| 65 | Testing failure scenarios | 09:00 | |
| 66 | Introduction to Outbox pattern | 03:57 | |
| 67 | Updating Order Service database schema and config for Outbox Pattern | 07:35 | |
| 68 | Refactoring Order domain layer: Adding Outbox models & Updating ports | 15:09 | |
| 69 | Refactoring Order domain layer: Adding Outbox scheduler | 16:55 | |
| 70 | Refactoring Order domain layer: Adding Outbox cleaner scheduler for Payment | 04:19 | |
| 71 | Refactoring Order domain layer: Adding Outbox schedulers for Approval | 11:04 | |
| 72 | Refactoring Order domain layer: Updating OrderCreate Command Handler | 10:29 | |
| 73 | Refactoring Order domain layer: Updating Order Payment Saga - Part 1 | 18:32 | |
| 74 | Refactoring Order domain layer: Updating Order Payment Saga - Part 2 | 14:23 | |
| 75 | Refactoring Order domain layer: Updating Order Approval Saga | 12:33 | |
| 76 | Updating the Order Application Service Test for Outbox pattern changes | 04:15 | |
| 77 | Refactoring Order Data Access module for Outbox pattern | 09:28 | |
| 78 | Refactoring Order Messaging module for Outbox pattern - Part 1 | 10:15 | |
| 79 | Refactoring Order Messaging module for Outbox pattern - Part 2 | 10:56 | |
| 80 | Testing Order Payment Saga | 13:37 | |
| 81 | Updating Payment database schema, config and package structure for Outbox | 07:14 | |
| 82 | Refactoring Payment domain layer: Adding Outbox schedulers | 16:00 | |
| 83 | Refactoring Payment domain layer: Updating Message listener implementation | 08:11 | |
| 84 | Refactoring Payment Data Access module for Outbox pattern | 06:22 | |
| 85 | Refactoring Payment Messaging module for Outbox pattern | 09:51 | |
| 86 | Testing Payment Request Message Listener for double payment | 09:41 | |
| 87 | Refactoring Restaurant Service for Outbox pattern - Part 1 | 13:58 | |
| 88 | Refactoring Restaurant Service for Outbox pattern - Part 2 | 05:48 | |
| 89 | Testing the application end-to-end with Outbox pattern changes | 14:51 | |
| 90 | Testing failure scenarios | 04:19 | |
| 91 | Introduction to CQRS pattern | 02:33 | |
| 92 | Creating Customer Kafka topic & Customer modules | 14:34 | |
| 93 | Implementing Customer Service modules | 14:48 | |
| 94 | Updating Order Service to use local database table with CQRS pattern | 10:22 | |
| 95 | Running Order and Customer Services to test CQRS pattern | 06:39 | |
| 96 | Introduction to Kubernetes and running a local Kubernetes using Docker Desktop | 05:57 | |
| 97 | Deploying Confluent Kafka to local Kubernetes using cp-helm-charts | 11:55 | |
| 98 | Creating Kubernetes deployment files for Microservices | 11:28 | |
| 99 | Deploying Microservices into local Kubernetes | 09:31 | |
| 100 | Deploying Postgres to local Kubernetes using Postgres docker image | 05:12 | |
| 101 | Creating Google Cloud account & Creating a Kubernetes cluster in GKE | 07:47 | |
| 102 | Pushing docker images to Google Artifact Registry | 10:02 | |
| 103 | Running the Application on Google Kubernetes Engine - Part 1 | 08:43 | |
| 104 | Running the Application on Google Kubernetes Engine - Part 2 | 07:56 | |
| 105 | Adding horizontal scaling to services | 08:51 | |
| 106 | Next steps & Thank you! | 01:19 | |
| 107 | Update to spring boot 2.7.5 | 09:45 |
Get instant access to all 106 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionWhat courses are similar to Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka?
-
Updated 3y agoSystem Design for Interviews and Beyond
By: Mikhail SmarshchokHaving over 15 years of industry experience, last 9 years I worked on building scalable, highly available and low latency distributed systems.7h 53m5/5 -
Updated 2y agoData Structures in Java
By: Java SpecialistsData Structures in Java (Late 2017 Edition) is an action-packed 8 hours of tips and tricks that professional Java programmers have used for the past 20 years.8h 3m -
Updated 2y agoSpring Boot Microservices and Spring Cloud. Build & Deploy.
By: UdemySpring Boot Microservices and Spring Cloud: Build and Deploy — same Spring Cloud stack with full CI/CD pipeline and Kubernetes deployment.20h 33m -
Updated 2y agoJava Design Patterns
By: Java SpecialistsOur Java Design Patterns Course is the best value-for-money education you can give your programmers. During an intensive 4 days, we cover all of the Gang-of-Fou16h 20m -
Updated 2y agoModular Monolith Architecture
By: Milan JovanovićThis in-depth course will transform the way you build modern systems. You will learn the best practices for applying the Modular Monolith architecture in a.12h 48m5/5 -
Updated 2mo agoGrokking the System Design Interview
By: Design GurusThe original course on system design from Educative by DesignGurus. Real cases, frameworks, and videos will help prepare for interviews at FAANG and other compa15h 19m -
Updated 1y agoJava Puzzles to Eliminate Code Fear
By: UdemyThe motivation behind this course came from an article titled "Why Can't Programmers Program?" by Jeff Atwood. It talks about how poorly many candidates perform7h 33m -
Updated 3y agoFull Stack HATEOAS: Spring Boot 2.1, ReactJS, Redux
By: UdemyFull Stack introduction to HATEOAS. In this course, you will learn the core concepts of HATEOAS as well as how to leverage this on a ReactJS Application.5h 51m
More courses by Udemy
-
NewReact - The Complete Guide
React: The Complete Guide by Maximilian Schwarzmüller — original 2022 edition covering React hooks, Redux, Context API, Next.js basics.47h 42m5/5 -
Updated 3y agoComplete C# Unity Game Developer 3D
This is the long-awaited sequel to the Complete Unity Developer - one of the most popular e-learning courses on the internet!30h 34m -
Updated 3y agoNest.js Microservices: Build & Deploy a Scaleable Backend
Nest.js is an incredible backend framework that allows us to build scaleable Nodejs backends with very little complexity. A Microservice architecture is a popul5h 39m5/5 -
Updated 3y agoThe HTML & CSS Bootcamp 2023 Edition
Brand new HTML & CSS course, just released in February 2023 Check out the promo video to see the beautiful, responsive projects we build in this course!37h 18m5/5 -
Updated 3y agoMicroservices with Node JS and React
Event-Based Architecture? Covered! Server side rendering with React? Yep. Scalable, production-ready code? Its here!54h 13m5/5 -
FreeClassic100 Days of Code - The Complete Python Pro Bootcamp for 2023
Watch the 100 Days of Code Python Pro Bootcamp free: 100 daily projects covering Python basics, web scraping, data science, automation and GUI apps.58h 35m5/5