We may earn an affiliate commission when you visit our partners.
Course image
Ali Gelenler and EA Algorithm

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 & Hexagonal Architecture principles while developing each service. In the implementation of the domain layer you will also apply Domain Driven Design principles.

Read more

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 & Hexagonal Architecture principles while developing each service. In the implementation of the domain layer you will also apply Domain Driven Design principles.

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. You may choose among over 20 different languages. I suggest using subtitles to make it easier to follow the lectures.

  • Scott Knox: "As a working professional, I can already tell this is the holy grail of understanding modern architectures. If your company is struggling to grasp certain concepts, this course will help you help them. Thanks Ali for the excellent explanations. "

You will implement SAGA, Outbox and CQRS patterns using the 4 Spring boot Java microservices that you will develop using Clean and Hexagonal architecture principles.

  • Nick Goupinets: "Great course - gives a deep-dive into microservice development experience with Spring Boot. As an added bonus shows how to deploy it with Kubernetes. At times it felt too detailed, sort of making it hard to see the forest behind the trees. Also Hex. architecture resulted in what looked like an over-engineered overall solution. With that said, Ali did a fantastic job explaining all of the design decisions with clear architecture diagrams that offset that complexity. "

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.

  • Nischal Jadhav: "If u are looking to become an high level developer or an architect, then this is the best course.. "

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)

  • Ali Aminian: "I really like this course. Thanks Ali for complete description and professional coding. I really enjoy to participate this course."

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 4 microservices that communicate using events with Kafka as the event store.

  • r j: "This is an amazing course. An architect from my team recommended this to me and he's implemented something similar but bigger in our company, the biggest retailer on the planet."

You will also have multiple choice quizzes in each section to check your progress throughout the course.

  • Arindam Majumdar: "This course helped me immensely to understand the Domain Driven Design approach on Microservices. Its so far the best hands on course I have come across in Udemy so far. Many thanks to Ali. Great job. :)"

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.

  • Anurag tiwari: "Just started the course but i can already tell that this a good one Ali explains all the concepts like out box ,saga pattern so well. I would highly recommend this course for anyone who wants to take their knowledge about microservices to the next level using different patterns like hexagonal ,saga pattern. I would also recommend this course for beginners as youll learn a ton of stuff regarding microservices and patterns to create agile services as this course is very hands on"

I have followed the same clean & hexagonal architectures and domain driven design principles in the implementation of each microservice. If you feel like you want to skip some repeating parts, you may download the source code that I provide in the first lecture of each section starting from section-3 or using the github links that I provided in the course resources. You can then use the provided source code to continue with the section.

  • Narendra Kumar A: "Its awesome course, I have ever come across in Udemy explaining the DDD, Clean architecture and usage of patterns concepts so cleanly."

For more detailed information on the progress of this course, you can check the introductory video and free lessons, and if you decide to enroll in this course, you are always welcome to ask and discuss the concepts and implementation details on Q/A and messages sections. I will guide you from start to finish to help you successfully complete the course and gain as much knowledge and experience as possible from this course.

  • Jason: "This course is one of the best I ever had. There are many microsevices courses on Udemy, and most of them are like something that manufactured in the same factory. They all used the same framework and followed the same steps to teach microservices. They never talked about the important concepts behind the microservice. I felt like they just wanted to show off the latest version of frameworks and finish the long courses with them quickly and get paid. The impression after I watched first this lesson was amazing. He actually starts the project with the bare bone java plain object. It was like I'm flying with feather, not fully armed with numerous buzzword frameworks. It might be frustrated at first if you are really new to microservices and never heard of concepts like DDD before. But I'm pretty sure this is one of the courses that make you a "better" developer."

Remember. There is a 30-day full money-back guarantee for this course. So you can safely press the 'Buy this course' button with zero risk and join this learning journey with me.

Enroll now

What's inside

Learning objectives

  • Develop microservices architecture using spring boot and kafka
  • Understand and apply clean architecture
  • Understand and apply hexagonal architecture
  • Understand and apply domain driven design(ddd)
  • Implement saga architecture pattern
  • Implement outbox architecture pattern
  • Implement cqrs architecture pattern
  • Learn kafka architecture and programming on kafka
  • Learn using kafka as the event store for event-driven services
  • Learn kubernetes basics & run a local cluster using docker desktop
  • Deploy microservices to local kubernetes cluster
  • Run confluent kafka on kubernetes using cp-helm-charts
  • Run postgres on kubernetes
  • Learn google cloud and google kubernetes engine(gke)
  • Deploy microservices to google kubernetes engine
  • Learn change data capture(cdc) with debezium and kafka
  • Show more
  • Show less

Syllabus

Learn structure of the course and the project overview
Structure of the course
Clean & Hexagonal architectures
Project overview - Part 1
Read more

The source code provided as GitHub links and zip files!

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Teaches a comprehensive set of skills, including Spring Boot, Clean Architecture, Hexagonal Architecture, Domain Driven Design, Apache Kafka, SAGA, Outbox, CQRS, and Kubernetes
Develops expertise in microservices architecture, making learners highly valuable in the job market
Taught by Ali Gelenler, an experienced instructor with a proven track record in software development and architecture
Provides hands-on experience through project-based learning, ensuring practical application of concepts
Covers both theoretical foundations and practical implementation, providing a well-rounded understanding of microservices architecture
Leverages modern technologies and industry best practices, ensuring learners are up-to-date with the latest advancements

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Deep dive microservices architecture & patterns

According to students, this course offers an exceptionally deep dive into modern microservices architecture, applying Clean and Hexagonal Architectures and Domain Driven Design (DDD). Learners highly praise the instructor's clear explanations and professional, hands-on coding approach, particularly for complex patterns like SAGA and Outbox. While some find the level of detail very high or the Hexagonal Architecture potentially over-engineered, the focus on core concepts over mere frameworks is a significant strength. It is ideal for working professionals and architects looking to advance their skills, though beginners to DDD might find it initially challenging.
Geared towards advanced developers, challenging for novices.
"If u are looking to become a high level developer or an architect, then this is the best course.."
"As a working professional, I can already tell this is the holy grail of understanding modern architectures."
"It might be frustrated at first if you are really new to microservices and never heard of concepts like DDD before."
"I would also recommend this course for beginners as youll learn a ton of stuff regarding microservices..."
Emphasizes underlying concepts over mere framework usage.
"They never talked about the important concepts behind the microservice. I felt like they just wanted to show off the latest version of frameworks..."
"I'm pretty sure this is one of the courses that make you a 'better' developer."
"This course helped me immensely to understand the Domain Driven Design approach on Microservices."
Features extensive practical coding with real-world application.
"Its so far the best hands on course I have come across in Udemy so far."
"Thanks Ali for complete description and professional coding."
"He actually starts the project with the bare bone java plain object."
"I would also recommend this course for beginners as youll learn a ton of stuff regarding microservices and patterns to create agile services as this course is very hands on"
Instructor excels at breaking down complex topics clearly.
"Thanks Ali for the excellent explanations."
"Ali did a fantastic job explaining all of the design decisions with clear architecture diagrams that offset that complexity."
"Ali explains all the concepts like out box ,saga pattern so well."
Provides profound understanding of complex microservices architecture.
"As a working professional, I can already tell this is the holy grail of understanding modern architectures."
"Great course - gives a deep-dive into microservice development experience with Spring Boot."
"Ali explains all the concepts like out box ,saga pattern so well."
"Its awesome course, I have ever come across in Udemy explaining the DDD, Clean architecture and usage of patterns concepts so cleanly."
Very thorough but can be overwhelming due to its depth.
"At times it felt too detailed, sort of making it hard to see the forest behind the trees."
"Hex. architecture resulted in what looked like an over-engineered overall solution."
"It might be frustrated at first if you are really new to microservices and never heard of concepts like DDD before."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka with these activities:
Read 'Clean Architecture: A Craftsman's Guide to Software Structure and Design' by Robert C. Martin
Provides a foundation for understanding the principles of Clean Architecture and Hexagonal Architecture, which are fundamental concepts covered in this course.
View Clean Architecture on Amazon
Show steps
  • Read the book and take notes on key concepts and principles.
  • Identify how these principles can be applied to the microservices architecture you will be developing in this course.
Build a simple microservice using Spring Boot and Kafka
Provides hands-on experience with the core technologies used in this course, helping you to build a solid foundation.
Browse courses on Microservices
Show steps
  • Set up a development environment with Spring Boot and Kafka.
  • Create a simple microservice that performs a basic operation, such as sending a message to a Kafka topic.
  • Test your microservice to ensure it is working as expected.
Complete coding challenges on LeetCode or HackerRank related to microservices and Kafka
Sharpens your coding skills and reinforces your understanding of microservices and Kafka concepts.
Show steps
  • Identify coding challenges that are relevant to the topics covered in this course.
  • Attempt to solve the challenges on your own.
  • Review solutions and learn from your mistakes.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Write a blog post summarizing the key concepts of Domain Driven Design (DDD)
Enhances your understanding of DDD by requiring you to explain its concepts in your own words.
Browse courses on Domain Driven Design
Show steps
  • Research and gather information on DDD from the course materials and other sources.
  • Organize your thoughts and ideas into a coherent structure.
  • Write and edit your blog post, ensuring it is clear and informative.
Design and implement a SAGA pattern to handle distributed transactions in your microservices application
Provides practical experience in implementing a critical architectural pattern that ensures data consistency across multiple services.
Show steps
  • Review the concepts and implementation of the SAGA pattern.
  • Design a SAGA pattern that meets the specific requirements of your microservices application.
  • Implement the SAGA pattern in your application code.
  • Test your implementation to ensure it is working correctly.
Follow tutorials on deploying microservices to Kubernetes using Docker
Provides step-by-step guidance on deploying your microservices application to a production-like environment.
Browse courses on Kubernetes
Show steps
  • Find tutorials that cover the deployment of microservices to Kubernetes using Docker.
  • Follow the instructions in the tutorials carefully.
  • Deploy your own microservices application to Kubernetes using Docker.
Attend a workshop on event-driven architecture using Apache Kafka
Offers an immersive learning experience where you can interact with experts and gain hands-on practice in implementing event-driven architectures.
Browse courses on Event-Driven Architecture
Show steps
  • Find a workshop on event-driven architecture using Apache Kafka.
  • Register and attend the workshop.
  • Actively participate and learn from the workshop materials and instructors.
Contribute to an open-source project related to microservices or Kafka
Provides an opportunity to apply your skills in a real-world setting, contribute to the community, and enhance your understanding of microservices and Kafka.
Browse courses on Open Source
Show steps
  • Identify open-source projects related to microservices or Kafka that align with your interests.
  • Review the project documentation and codebase.
  • Make contributions, such as fixing bugs, implementing new features, or improving documentation.

Career center

Learners who complete Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka will develop knowledge and skills that may be useful to these careers:
Software Architect
Software Architects design, develop, and maintain the overall architecture of software systems. This course will help prepare one for this role by providing a deep dive into various architectural patterns such as SAGA, outbox, and CQRS. Understanding these concepts is essential for designing and implementing scalable, reliable, and maintainable software systems.
Solutions Architect
Solutions Architects design, develop, and implement technology solutions that meet the needs of their clients. This course will help prepare one for this role by providing a comprehensive understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are becoming increasingly important in the development of modern, cloud-based applications.
Enterprise Architect
Enterprise Architects design, develop, and manage the overall architecture of an organization's IT systems. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for designing and implementing scalable, reliable, and maintainable enterprise-wide IT systems.
Principal Software Engineer
Principal Software Engineers are responsible for leading and mentoring other software engineers and for designing and developing complex software systems. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for designing and implementing scalable, reliable, and maintainable software systems.
Data Architect
Data Architects design, develop, and manage the architecture of an organization's data systems. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for designing and implementing scalable, reliable, and maintainable data systems.
Computer and Information Research Scientist
Computer and Information Research Scientists invent and develop new approaches to computing technology and find innovative uses for existing technology. Those interested in this career path should consider this course, which provides a strong foundation in software architecture and design principles. Learning about topics such as clean architecture, hexagonal architecture, and domain-driven design (DDD) will help prepare one for roles such as this that require an advanced level of technical knowledge and expertise.
Senior Software Engineer
Senior Software Engineers are responsible for designing and developing complex software systems. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for designing and implementing scalable, reliable, and maintainable software systems.
Software Development Manager
Software Development Managers are responsible for planning, organizing, and directing the development of software systems. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for managing the development of scalable, reliable, and maintainable software systems.
Technical Project Manager
Technical Project Managers are responsible for planning, organizing, and directing the development of software systems. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for managing the development of scalable, reliable, and maintainable software systems.
Database Administrator
Database Administrators are responsible for managing and maintaining the databases used by an organization's software systems. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for managing and maintaining the databases used by scalable, reliable, and maintainable software systems.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between software development and IT operations. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for designing, developing, and deploying scalable, reliable, and maintainable software systems.
Cloud Architect
Cloud Architects design, develop, and manage the architecture of an organization's cloud-based systems. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for designing and implementing scalable, reliable, and maintainable cloud-based systems.
Full-Stack Developer
Full Stack Developers are responsible for designing, developing, and deploying software systems. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for designing and implementing scalable, reliable, and maintainable software systems.
Back-End Developer
Back End Developers are responsible for designing and developing the back end of software systems. This course will help prepare one for this role by providing a deep understanding of microservices architecture, event-driven architecture, and the use of Apache Kafka as an event store. These concepts are essential for designing and implementing scalable, reliable, and maintainable software systems.
Front-End Developer
Front End Developers are responsible for designing and developing the front end of software systems. While this course does not teach front end development skills, it may still be of interest to Front End Developers who want to learn more about microservices architecture, event-driven architecture, and the use of Apache Kafka.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka.
Classic in the field of domain-driven design (DDD). It provides a comprehensive overview of DDD principles and practices, and it is essential reading for anyone who wants to learn more about DDD.
Is the definitive guide to Kafka. It covers all aspects of Kafka, from its architecture to its use cases. It must-read for anyone who wants to learn more about Kafka.
Provides a detailed overview of hexagonal architecture. It valuable resource for anyone who wants to learn more about hexagonal architecture.
Provides a comprehensive overview of event-driven architecture. It covers topics such as event-driven architecture principles, patterns, and practices.
Provides a practical guide to implementing domain-driven design. It covers topics such as DDD principles, patterns, and practices.
Provides a practical guide to Kubernetes. It covers topics such as Kubernetes architecture, deployment strategies, and operations.
Provides a comprehensive overview of software architecture. It covers topics such as architectural patterns, design principles, and best practices.
Provides a comprehensive overview of microservices. It covers topics such as microservices architecture, design patterns, and deployment strategies.
Provides a comprehensive overview of clean architecture principles. It valuable resource for anyone who wants to learn more about clean architecture.
Provides a comprehensive overview of data-intensive applications. It covers topics such as data modeling, data storage, and data processing.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser