Event-Driven Microservices: Spring Boot, Kafka and Elastic (Udemy.com)
Master event-driven microservices architecture patterns with Spring boot, Spring cloud, Kafka, Elasticsearch, Spring AI
Created by: Ali Gelenler
Last updated January 2026
What you will learn
- Master Microservices architecture with Spring boot and Spring cloud stack
- Develop Event-driven microservices with Apache Kafka
- Understand Containerization of microservices with Docker and Docker compose
- Learn Basics of Kafka brokers, topics, partitions, producers, consumers, admin client, avro messaging, zookeper and schema registry
- Learn Basics of Elasticsearch, index api and query api
- Implement Kafka based messaging applications with Spring Kafka
- Understand Elasticsearch indexing and queries with Spring Data Elasticsearch
- Implement CQRS pattern with Kafka and Elasticsearch
- Implement Externalize configuration pattern with Spring Cloud Config
- Develop Rest API
- Implement Api versioning for versioning of Rest APIs
- Implement Spring Data JPA with PostgreSQL
- Understand Service Registration and Discovery with Netflix Eureka and Spring cloud
Course Description
Hi there! My name is Ali Gelenler. I'm here to help you learn event-driven microservices architecture by applying best practices for real-life challenges.
Important Update: This course was using Twitter api as the source data. Twitter changed the twitter developer account to a paid subscription. After this, with the latest update series, instead of streaming data from Twitter, Generative AI is used to simulate tweet streaming using Spring AI with various LLMs, so that you can create the tweet content using a Large Language Model. For this I added examples from different providers using different models as listed below.
Generate Tweet data using Open AI API using direct Http request
Generate Tweet data using Open AI Java SDK
Generate Tweet data using Google Vertex AI
Generate Tweet data using Spring AI and Open AI
Generate Tweet data using Spring AI and DeepSeek
Generate Tweet data using Spring AI, Ollama and DeepSeek locally
You can see the new implementations with [NEW] prefix in the lectures. I kept the old twitter implementation for now using [OLD] prefix so that you can compare the old and new implementations. The old lectures will be deleted in time.
In this course, you will focus on the development of microservices. With the help of microservices you can independently develop and deploy your application components . You can also easily scale services according to each service's own resource needs, for example you can scale better and create more instances of a service that requires more requests.
You can always use the latest versions for spring boot, spring cloud and other dependencies in this course. Please just follow the last section's lectures 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. I suggest using subtitles to make it easier to follow the lectures.
When moving from a monolith application to microservices architecture, some challenges will arise as a result of having a distributed application and system. In this course you will learn how to deal with these challenges using event-driven architecture (EDA) architecture with Apache Kafka.
With an event-driven architecture;
You will truly decouple the services and create resilient services because a service has no direct communication with other services
You will use asynchronous/non-blocking communication between services
You will use an event/state store (Kafka), and remove the state from the services for better scalability
Tanima: "This is one of the best course i ever had in udemy, instructor is super responsive and always deals with complex problem during the course, Thank you so much Professor i will always be grateful to you for this course, and will keep eye on your next course release."
You will develop a microservice architecture from scratch using the most recent software platforms, technologies, libraries and tools, following best practices, applying microservices patterns and using Java, Spring boot, Spring cloud, Spring Security, Kafka and Elasticsearch. We will also cover Event sourcing and Event-driven services using Kafka as the event store.
The microservices patterns that you will be implementing are:
Externalized configuration with Spring Cloud Config
CQRS with Kafka and Elastic search
Api versioning for versioning of Rest APIs
Service Registration and Discovery with Spring Cloud and Netflix Eureka
Api Gateway with Spring Cloud Gateway
Circuit breaker with Spring Cloud Gateway and Resilience4j
Rate limiting with Spring Cloud Gateway and Redis to use Redis as the Rate limiter
Distributed tracing with SLF4J MDC, Spring Cloud Sleuth and Zipkin
Log aggregation with ELK stack (Elasticsearch, Logstash and Kibana)
Client side load balancing with Spring Cloud Load Balancer
Database per Service
Messaging between microservices using Kafka
You will also implement Spring Security Oauth 2.0 and OpenID connect protocols for Authentication and Authorization using Keycloak and JWT. The use of Oauth for authorization of services and OpenID connect for authentication is widely used in microservices archictecture with Spring boot security.
Oliver Michels: "Amazing course that covers a lot of ground, i.e. Spring Boot, Kafka, Elastic, OAuth/Keycloak, etc. and shows how all those pieces fit together in a nice microservice architecture."
Another important topic that you will focus on is the monitoring of microservices. You will use Spring boot actuator and Prometheus with Micrometer which can be used to get metrics such as health, number of running threads, number of requests, response time and memory usage. You will also learn to use Grafana to create a nice dashboard to visualize the metrics that you obtained using Spring boot actuator and Prometheus.
While introducing event-driven microservices, you will understand the basics of Apache Kafka by covering Kafka topics, Kafka partitions, Kafka consumer and producer APIs, Kafka admin client and Avro messaging.
Emre Demir: "This is not only a software tutorial. It is an advanced computer engineering course. The examples and descriptions are excellent. Full-stack and Back-end developers must take."
To communicate between microservices, apart from using Kafka messaging, I will also introduce Kafka Streams and show how to use Kafka Streams to create a temporary state store with the accumulated streaming data. This temporary data source will then be consumed by another microservice.
To communicate with the data stores in microservices I will use different Spring Data dependencies, such as Spring Data JPA with PostgreSQL, Spring Data Elasticsearch and Spring Kafka.
For the Api documentation, I will use Open Api 3 specification which implements Swagger 3.0. Open Api will create a RESTful interface for an API and help you to easily develop and consume a Rest API.
You will also learn how to use Hateoas (Hypermedia as the Engine of Application State) in a Rest Api with Spring Hateoas. Hateoas will provide links to resources on the server, and update the REST API response with these links to interact with the client dynamically. This will enable developing level 3 Rest APIs.
Sidhartha Mallik: "This course is to the point - and great one for every level, strongly recommend"
Instructor Details
- 4.5 Rating
2,658 Reviews
Ali Gelenler
Ali Gelenler, the founder of EA Algorithm, has been in the IT industry for 20 years, with hands-on experience in Software Engineer, Software Architect and Tech Lead positions. He holds a Master's degree in Computer Engineering and is highly experienced in Backend technologies in distributed environments, Performance optimizations, Java, Spring, Spring boot, Microservices, Architectural patterns, Web security, Database technologies, Cloud-based solutions, Kafka, Elasticsearch, AI engineering with Java and Spring AI.
He is currently working actively as a Senior Engineer and Technical Leader and has experience in the financial technology sector, content management sector, defense industry and government projects.
Ali also has a passion for teaching and mentoring and worked as an instructor in individual and group classes in various IT fields.
More courses by Ali Gelenler
Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka (2026)
4.6 (3,476 Reviews)
Provider: Udemy
Time: 22.4h
$94.99
Web security: Injection Attacks with Java & Spring Boot (2025)
4.7 (414 Reviews)
Provider: Udemy
Time: 8.9h
$74.99
More Elastic Search courses
Elasticsearch Masterclass: ES|QL, Vector, and More (2025)
4.8 (1,037 Reviews)
Provider: Udemy
Time: 6.4h
$84.99
ElasticSearch as you have never known it before (2026)
4.7 (231 Reviews)
Provider: Udemy
Time: 5.8h
$49.99
Apache Kafka Series - Kafka Connect Hands-on Learning (2026)
4.6 (5,936 Reviews)
Provider: Udemy
Time: 4.5h
$94.99
Data Processing with Logstash (and Filebeat) (2021)
4.6 (3,371 Reviews)
Provider: Udemy
Time: 5.5h
$84.99
Elasticsearch 8, Kibana, Logstash, Beats: ELK Stack (2026)
4.6 (1,428 Reviews)
Provider: Udemy
Time: 3.1h
$74.99
Reviews
By Pulak Kumar Sinha on 6/6/2025
One of the best courses available online on java microservices . What a course , i am truly spellbound. Top of that , instructor is readily replying back for any issue ,this is what its make it great course. I am truly enjoying it. One has to go video by video carefully and try to do in their own local system hands on, and rest assured its worth it.
By Mykhailo Skliar on 11/19/2023
This Course is a comprehensive and hands-on experience for Spring Boot developers looking to dive into event-driven microservices with a focus on Kafka, Elasticsearch, and Event-Driven Microservices. The incorporation of various technologies such as Kafka Streams, CQRS, and Twitter-to-Kafka event streaming adds depth to the learning experience. The provided agenda and exercises are well-structured, covering key aspects of the technology stack. The Course Agenda is practical and contributes to a deeper understanding of real-world challenges in Microservices development. This Course is not only a learning resource but also a practical guide for building and deploying such systems in development and production environment. Overall, this Course is a fantastic resource for developers interested in building event-driven Microservices with Spring Boot, Kafka, and Elasticsearch. Thank you, Ali Gelenler for this super practical, interesting and challenging Course!
By Lukas Jarrah on 3/20/2023
- This course is a great example of creating a product consisting of a few microservices. - I spent 28 hours (breaks included) to finish the course. I often paused the video, browsed through the code, and tried changing small things. - This course looked like one of the most technical ones regarding microservices/event-driven architecture. What you will not learn: - How to efficiently separate the app into multiple repositories - Independent deployment of particular services - Services versioning - Writing tests (the tutor does not write any tests for time reasons) Recommendations: - The most issues were with setting up a Keycloak connected to a local Postgres database. Next time I would go through this section very briefly and try to disable security in all microservices. - Do not try to use Twitter production data but use the mocked option. It works well enough, and you don't need to wait for Twitter API key approval (mine wasn't approved even after two weeks of waiting). - Downloading the resources in zip files isn't very convenient. It would be better to have one public repo and just switch the tag/branch for every lesson.
By Enis Halilaj on 12/29/2022
The course's content is absolutely good content and very much the best practices. One thing to note before taking the course is if you want to "do by learning" I do not think you can with this course because it is heavily loaded with content and the lecturer goes through most of the content very fast so you would need to play it at 0.7x speed to make it through. Note that the course is around 13-14 hours but trust me it will take more than 40-50 hours to complete, at least that is what worked for me. Hours of writing code, debugging, and last but definitely not least loads of learning throughout the course. Also the lecturer, Ali is very helpful and answers within 24-to-48 hours if you ask a question. The only reason I am not giving the course a 5-star rating is because it is pretty fast paced even though I do not know the reason because this course could've been easily 25 hours if things would go a bit more slower but other than that the course is top notch!!
By Bonifasius Anggara on 12/25/2022
The project example is ammaaazing, really cool, the way Ali setting the project itself is also really cool, seems like a really best practice in Spring world. In some concept, the explanation is good, but in some other concept like kafka, the explanation is still lacking, but it's fine. The IDE though, is still often not zoomed in, so it's hard to read the code, but everything else is great!
By Python Group on 11/7/2022
Extremely difficult course to follow .The trainer should slow down at first,the configuration server and all the refactoring cannot be understood in a single flow.No doubt the instructor is extremely talented but in between lectures i cannot understand much of the workflow .There are many annotation and many configuration changes and much more refactoring but its difficult .I have completed the couse but like the keycloak configuration ,clients,mapping,credentials,roles and authorize all these things take huge time and also the outh2 and openId connect takes time.I can get a feel of the code but the workflow seems really difficult to be comprehended.I did not any language problem using captions
By Armando Ferrara on 9/26/2022
The course is difficult to follow, it is the course that took me longer to finish based on the total hour (11 hours -> 1 month of my time), and I have attended over 30 courses on Udemy. I can say the content is great, so I have still found time to finish it and create a better repository on GitHub for those who need help, there is the latest version and to run everything you just need to follow the README:: https://github.com/Armando1514/Event-Driven-Microservices Due to the fact that the security part is almost copy and paste, I have added an explanation of what is happening behind the scene: https://github.com/Armando1514/Event-Driven-Microservices/blob/main/doc/SECURITY.md A star is appreciated.
By Jad on 2/8/2022
I have purchased many bestselling courses related to Spring on this platform, but this course is, by far, the best investment I have ever made. I'm amazed at the amount of knowledge I've accumulated since I started it. IMPORTANT: This course focuses primarily on how to create a complex, real-world application to help people in their day-to-day work. It assumes that you have experience as a Spring developer. It uses modern and widely used technologies and teaches you how to put them together to create an application that has the same robustness as what is done in the industry. ㅤ For beginners with minimal knowledge: This course is difficult, but is the best experience you can have if you take it as a guide, as it will show you precisely what you need to learn to create a complete application (see my advice below*). For others: just take it. It's a gold mine. Not only will you improve your skills, but you will also be up to date as the teacher is constantly adding updates on a dedicated section to migrate the whole app to the latest version. ㅤ The final built project is incredibly (!) dense. It's so dense that it can be used as an inspiration to build any personal project you want. That's what makes this course unique: it doesn't teach you through snippets like the vast majority of courses. It's pure practice, like an internship in a real company. Also, sometimes you may find some parts difficult to follow, too fast, or feel the need to research additional information/courses, but at the end of the day, your efforts will be rewarded. It is important to understand that this course is not a course that teaches you every aspect of every technology used (otherwise it would be a 100 hour course), but rather a course that allows you to learn best practices and shows you how an experienced developer builds a complete and robust application, so you can replicate the steps. ㅤ *Advice to beginners: I started this course with minimal knowledge of Spring, gathered through a few best-selling courses on Udemy. If you take this course, keep in mind that its main objective is to show you the complete process of how a professional developer builds a complete and complex application, with the guarantee that the implementation will be done correctly and be up-to-date. So whenever you feel lost, pause the videos, search for external resources/courses, then come back. This is what I did, and the progress I made was phenomenal because I knew exactly what to learn as I moved forward. I strongly advise you to take it as a guide, so you can see what a real application looks like (unlike most demos that can be found on the internet, that are just snippets).
By Filip Drasic on 1/25/2022
This was one of the best courses I have ever attended and here is why. It contains really good coverage of Spring framework and it's security in addition of SSO (single sign-on) system using OAuth2. Also, this course covers Kafka and Elasticsearch so you will learn how to handle and transform streams of data and understand processes happening underneath the hood. You will also learn how to use Docker to containerize all the microservices you will be building along with Ali. On top of everything, you will also create graphs and metrics to monitor your services, and aggregate logs with Spring technologies. There is a lot of work here, but it all pays of at the end. This is also an invaluable source of knowledge material for everyone studying microservice architecture, plus I really have to recommend Ali as knowledgeable, responsive and responsible tutor. I have recommended this course to my work collagues. Best regards, Filip P.S. Follow the exact same versions of dependencies as given in the course videos, and update later, to save yourselves a lot of trouble :) Also, if you find videos to fast, just set them to 0.75x speed, it will be perfect :)
By Yabin Monroy on 4/25/2021
It's impressive the work that the instructor have achieved, and it's so awesome to learn about driven event systems even though is super hard to follow the whole tutorial because of the complexity. In my personal opinion I would recommend the instructor the next changes: 1.- Avoid spring security or move it to the last chapters. 2.- Try to void Avro till the last chapters. 3.- Avoid lombok because cause instability in eclipse newest versions. You really should to break this training in two courses at least with beginner and advance. I have seen some bad reviews and I totally understand the frustration trying to understand this topics without the necessary experience
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 90 / 100








