Event-Driven Microservices: Spring Boot, Kafka and Elastic

Master event-driven microservices architecture with patterns using Spring boot, Spring cloud, Kafka and Elasticsearch

4.47 (1993 reviews)
Udemy
platform
English
language
Software Engineering
category
instructor
Event-Driven Microservices: Spring Boot, Kafka and Elastic
22,882
students
13 hours
content
Jan 2024
last update
$94.99
regular price

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

Implement Client side load balancing with Spring Cloud Load Balancer

Understand Api Gateway pattern with Spring Cloud Gateway

Implement Circuit Breaker pattern with Spring Cloud Gateway and Resilience4j

Implement Rate Limiting with Spring Cloud Gateway and Redis

Understand Authentication and Authorization with Spring Security Oauth 2.0 and OpenID connect protocols with Keycloak using JWT

Implement Monitoring of microservices with Spring Boot Actuator, Micrometer, Prometheus and Grafana

Understand Log aggregation patterns and visualization with ELK stack - Elasticsearch, Logstash and Kibana

Understand using Hateoas in Rest APIs with Spring Hateoas

Implement Open Api v3 for Restful API documentation with Swagger v3

Use Thymeleaf and Bootstrap for a basic front-end

Understand Reactive development and asynchronous flow by querying Elasticsearch reactively with Reactive Spring, WebFlux, WebClient and Reactive Thymeleaf

Learn Distributed tracing with Slf4J MDC, Spring Cloud Sleuth and Zipkin

Understand Database per Service pattern

Understand using Kafka streams with state store

Learn streaming tweets from Twitter using Twitter4J

Why take this course?

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 uses Twitter api as the source data. Twitter is planning to change the twitter developer account to a paid subscription. However this will not effect the course because I have already added a Mock Tweet implementation so that you will not need to create a Twitter developer account if it is turned into a paid service.

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"

There is also a reactive development section in this course which demonstrates querying elasticsearch reactively with Reactive Spring, WebFlux, WebClient and Reactive Thymeleaf. In this section you will learn how to use Spring Webflux and Spring reactive components to create an asynchronous flow between microservices.

You will use Spring boot and Spring cloud along with Docker for developing cloud ready microservices. Docker is a containerization platform and it enables to package applications into containers. These containers can later run in any environment that docker is running. In this course you will create the docker images of the microservices that you have developed. Then use docker compose to run all the containers of microservices together, along with the other dependencies such as Kafka, Elasticsearch, Keycloak, Redis, Prometheus, Grafana and Zipkin . In the end a single 'docker-compose up' command will be enough to run all microservices architecture together with the required dependencies. Having these docker images will enable you to deploy your application to any cloud vendor easily.

  • Mohammed O. Tillawy: "amazing course, but prepare yourself, very intense, and tons of info, needs focus and patience." 

You will be following a hands-on approach and be developing a project from scratch in which you will have multiple microservices surrounded with multiple modules to accomplish the specific tasks. So you will need to make your hands dirty in this course where I will be guiding you from start to finish. You will also find multiple choice quizes in each section to check your progress throughout the course.

At the end of the course you will not only understand the real life challenges of a distributed application with multiple services and components, but also you will be able to apply solutions to this challenges.

You can download the source code in each lecture separately and run them easily using your IDE or docker.

  • Ido Charar: "This course by Ali Gelenler is outstanding. It is not just about Spring Cloud with kafka and elastic. This course gives you much more knowledge around technologies related to Spring Cloud in particular and Cloud Computing in general. Among them are technologies like reactive programming, streaming, linux OS, security, Design Patterns and much much more. All the information is given in succinct but ingestable form, which allows you broaden your skills in shortest possible time. Very appreciate the investment in material, lecturer involvement, constant assistance and help to the students. Will recommend to take this course everyone who want to level up her/his skills."

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.

  • Shantanu Srivastava: "I brought this course specifically for learning Apache Kafka and after going through the Introduction video, I find out that this course will cover literally every single thing you need to know as a spring developer. From API gateways and Service Discovery, to log forwarding and resilience and so much more. Awesome!!"

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.

Screenshots

Event-Driven Microservices: Spring Boot, Kafka and Elastic - Screenshot_01Event-Driven Microservices: Spring Boot, Kafka and Elastic - Screenshot_02Event-Driven Microservices: Spring Boot, Kafka and Elastic - Screenshot_03Event-Driven Microservices: Spring Boot, Kafka and Elastic - Screenshot_04

Reviews

Mykhailo
November 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! ?
Veysel
October 11, 2023
Every project code and project document is shared in every tutorial video resource. I think the author could have shared all these resources on Github.
Deepak
August 14, 2023
The explainations are not detailed, the lecturer just reads ppt file and go on copy pasting coding without explaining it. There should explaination provided using diagram on what we are achiving in a lecture and then start coding. Its sometimes difficult to understand how one code is connected to other code taught in previous lectures. I think the lecturer has just added too many things in this course and just hurried to finish the course making it difficult to understand. I already have working experience in spring boot project but still faced difficulty in understanding this course. Can't recommend this coure to anyone.!
Sanjiv
July 21, 2023
A little bit more clarity required while explaining. At the beginning of a topic, I would suggest to provide the details of the goal to achieve.
Ashu
May 20, 2023
Good Explanation of concepts.Also the course contents are exactly what I was looking for like how to implement logging, monitoring, fault tolerance in microservices using event driven architecture
Sathish
May 19, 2023
In this course not able to catch up the words what he is saying. entire course itself is very fast and very difficult to understand.
Davis
May 7, 2023
A good tips for development with a good practices too. I am a developer and I am learning new topic and achieving my knowledge. Thanks.
Shrihari
April 20, 2023
You need to really know SpringBoot basics, Annotations and lot of concepts before you start with this course, its like seeing the code which he has written and then writing it. Concepts are not explained correctly. Bad course for me.
Yasin
April 18, 2023
Amazing content but the speed of the course is very fast. It might be hard to understand steps especially for junior developers.
Eduardo
April 8, 2023
The Course is really goob but if you are newbie you are going to face with a lot of issues because this course was made by sections, so manytimes is missing something that will not let you go forward smothly because you will need to find was is missing (configuration, some part of code that was modified that was not recorded on the video) or what is wrong or why is failling (even when you follow the same steps of the video).
Dzmitry
April 5, 2023
Coding without or with a very poor explanation. During the course, I thought that author was hurrying somewhere and needed to finish the video as soon as possible. Well, teaching is also not for everyone. The security section is a total disaster: The Spring security framework was used without introducing relations between entities and minimal explanations, and classes were created on the fly here and there but for what reason - not clear. Even though I have experience with applying OAuth2 in several real projects, it was really very hard and almost impossible to follow the author's ideas and object relationships. Leaving two stars just for an attempt to cover the "ready out of the box" system.
Lukas
March 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.
Francis
March 9, 2023
codes sources ne fonctionnent pas, trop de temps suplémentaire pour comprendre et corriger les problèmes ? ?
Наталия
February 24, 2023
Thanks for the lectures, could you please tips where the templates of this code can be used?I just understand that this course includes a lot of cool technologies.
Juan
January 10, 2023
I like the content, the exaplanations and the way the information is organized, but I have to say that we have to pause and rewind multiple times because sometimes you are going too fast. The is why 4 stars

Charts

Price

Event-Driven Microservices: Spring Boot, Kafka and Elastic - Price chart

Rating

Event-Driven Microservices: Spring Boot, Kafka and Elastic - Ratings chart

Enrollment distribution

Event-Driven Microservices: Spring Boot, Kafka and Elastic - Distribution chart
3599404
udemy ID
10/28/2020
course created date
2/10/2021
course indexed date
Bot
course submited by