Please take this as a friendly and constructive feedback from a university student who is in the beginning of a journey to become a backend developer. Although the video (or course, if you wanna call it like that) is really comprehensive, there are some bad practices as I noticed. For instance, you do not care about the losely-coupled philosophy, you inject a lot of dependencies in a single service, for example in order service, there are literally 7 injections, and this might be a drawback in point of scalability. But anyhow, I sincerely thank you for sharing this valuable and rich resource with us!
have only completed half of the video course and Couldn’t wait any longer to appreciate the efforts you put in to give us a very valuable knowledge. The contents of the video course are as per market standards and exactly what any developer will look for. Really thank you so much @Ali. Keep uploading such contents
@Bouali Ali is a lecturer who is a cut above the rest. Nice and slowly in teachings. He explains all his steps so well. This makes you understand the architectural thinking and you build from first principles! Well done!!!!
As always, very grateful for your videos. Eagerly waiting for the concepts said in the outro: - Microservice Patterns - ELK Stack - Event Driven etc... Really appreciate your efforts
This is the first Microservices Spring Boot course I have watched from start to finish, taking notes and practicing along the way. Thank you for taking the time to prepare this and for making it free.
One of the best teachers that I've seen on all platform courses. Everything is super clear, you know how to catch the attention of your student, you keep everything super simple and trough all the tutorial I'm just waiting to see what comes next. Your tutorials are full of a lot of interesting things, they are concise but a big number of technologies are touched, that incredible! All my respect and admiration for your effort
Hi, I have a question - How would you handle the situation when one service (for example: payment-service) cannot process our request and it is necessary to rollback transaction in other services? Is it necessary to use SAGA pattern for compensation request or maybe you know better way ?
Amazing tutorial, thank you! I faced some issues with tracing with Zipkin. So, I think all the API calls for the same flow should be part of the same trace entry instead of multiple entries. In order to solve it, I removed Feign Client (I was facing issues with load blancer paths), and replaced it with RestTemplate. Once done, all the API calls for the same flow, say order, was part of the same trace, here 9 spans. Also, please note, don't create your own implementation of RestTemplate as it won't be able to trace the API calls. So, create a bean of RestTemplate by passing RestTemplateBuilder to its parameter of the bean creation. That should fix the issue.
Thank you for the great course. After adding keycloak to the application, the feign clients dont have the authentication access to the other services as tokens are only with the service to which token is passed along with the api. This breaks the order service and the keycloak application has to implemented manually
2 questions: 1 - API gateway is the entry point for all microservices, so it's dealing with authentication. Should the other microservices also be secured and validate the token against the auth server? 2 - How to deal with userId's? Should we use keycloaks userId we get from the token and use like a foreign key in other service databases, like usually (eg: user courses/books/whatever)?
Hello, thank you for the explanation. I have some questions, please: 1. What about the security of other microservices? Is it necessary to secure them? I am using an interceptor to send the JWT between microservices when I use OpenFeign. Is that the correct approach? 2. I am having an issue when securing the discovery service. I allowed the path */eureka/** and required authentication for all other paths. The problem is that I can't see any services in the Eureka service dashboard, and I am also facing issues with communication between services. 3. How can I secure the config service as well? I would appreciate your help in answering these questions.
Hi Bouali Ali, Thank you for this excellent tutorial! It has been incredibly helpful in understanding Spring and microservices architecture. I do have a question, though. Toward the end of the course, when configuring security with Keycloak, everything works perfectly when obtaining the token and making requests to microservices like *Product* and *Customer*. However, when placing an order, the *Order* microservice attempts to fetch the customer information but fails to pass the token to the API Gateway. Could you please explain how to configure security to resolve this issue? Thank you!
Thank you a lot. Excellent idea, video, and explanation. 100% quality material in this video. My Respects. I would like to point out that the Keycloak section is not committed in the repo and also misses the migration of the config to the configService. However, I was still able to complete it
Sir, I have developed my application following your architecture and coding. Now i am.working on docker image development and finally will deploy through kubernates. Please create a video on Docker image development for the above project. Cheers🎉 for your hardwork..
I always appreciate your videos . thank you! Could you consider covering how to implement JWT in a microservices architecture in one of your upcoming videos?
Thanks for the wonderful course! While watching the video, I had a few questions. What happens when a payment fails? How does the order get reverted? I'm curious about transaction management across services. After some exploration, I discovered that the "eventual consistency" principle might be suitable for micro service architecture. While I've heard 2PC is an option, it has several edge case issues so Orchestration or Choreography could provide a solution. I would appreciate a deeper understanding of these patterns, including their advantages and disadvantages. Additionally, more theoretical insights covering the most other use cases and related scenarios would be beneficial. This is just a request, and I look forward to it whenever you have time. Thanks again!
I watched full video , and it was awesome !!! my suggestion to you that you should create full course on microservices from development to deployment. also just like this video , it should be as per current market requirement, real time scenario's with latest technology stack. you can do you it on youtube or paid platforms as per your convenience.
thank you so much the nice feedback. I provide free content, no need to buy courses. feel free to contribute and help on youtube if you want to, otherwise, all my content is for free and available in my YT channel. Enjoy it
If we were to implement Spring Security JWT Authentication then how would you pass on the token to other services? Another question if one is auditing using Hibernate envers and uses the security context object to identify who modified what, how can i achieve that in this microservice architecture. I'd really be thankful if you could answer my questions.
Thank you Bouali for the amazing tutorial into spring cloud with many industry best practices implementations! Would like to know if you would also be expanding upon this project by demonstrating deployment on this app? Would love to see dockerizing and orchestration of this app, as well as load balancing configuration using api gateway. Would also like to see if you could explain circuit breaking and e2e testing using this application. Thanks in advance!
just finished following this tutorial and it's been great, I learned so much! If I may suggest an interesting topic for possible future videos, which I think is alittle under-explored in TH-cam tutorials - distributed transactions. You mentioned SAGA pattern at the end of the video, but it would also be cool to look at other solutions like 2 phase commit and transaction outbox
Thank you very much, an excellent course with many concepts to assimilate. Thank you for your dedication and time in sharing your knowledge. I tell you that I was able to replicate the entire course and it is working 100% without errors, thank you for all your effort, I really value it a lot.
Thank you for your excellent teaching style! Your videos are incredibly helpful. Could you please create a new course on Spring Security? It would be greatly appreciated!
Hi Ali, Thank you for sharing this awesome course with us. Could you please let me know which tool you used for the application architecture diagram shown at 19:56 in the global diagram? Thank you!
Hello thanks for the great content, I wanted to ask why you made flyway init database file only for the product service and not for other services? How is database creation in rest of them is handled?
The microservice that flyway uses delegates the creation of the tables to flyway, who, through migrations, creates the tables and subsequently the records to populate them. Regarding the other microservices that use postgres, the creation of the tables is done by hibernate, this is thanks to the spring.jpa.hibernate.ddl-auto=update (create or create-drop) configuration. On the other hand, when using flyway that configuration is set to validate, to validate that the tables created in the database are correctly mapped to your entity.
@@Asingh42 You can use the import.sql file in the /resources directory. The file will contain the insert statements to the table you want to populate. In the properties file it is important that you have the spring.jpa.hibernate.ddl-auto=create (or create-drop) setting.
Wow, This is awesome content, sir Ali. Thank you very much for sharing your knowledge and understanding with us. I always enjoy your content very much and keepcoding with you
Hi @Bouali. I want to implement Spring Data JPA with MySql Db using the same configurations you mentioned. Seems like my customer-service app is not accepting the spring-data-jpa dependency. I am getting errors if I implement spring data jpa. Care to put some more light onto it?
Record basically is Syntactical Sugar for a Immutable class. It gives you Getter Setter , and All Args Constructor , equals and HashCode. SO for making a DTO it is easy to just make a record Class and define Props in constructor. PS: It makes Code Look clean and we dont have to use Lombok Annotations
Hello sir, I have a remark about the Customer-service You have declared an id field in the CustomerRequest, in this case you are letting the user enter his id, and so if he entered an old id, a collision would happen and the data of old user will be deleted from the database
all looks great but after implementing keycloak, when i tried to submit a order using a fresh token the authentication failed because get customer ms is getting called internally and there the the token validation is failing, without keycloak order can be placed with no issue. Am i missing something?
Great video, helped me a lot with building my first microservices! I am so grateful to you! Do you know how to ignore logging of health checks in tracing? Because there are a bunch of noise when I query logs. Thank you in advance
You are amazing ❤ Thank you so much for your great contribution 🎉 I would like to request to create a complete E-commerce application from dev to deployment using all required tech and also please use jwt this time 🙏
Thank you, amazing tutorial as always! Please add a feature to pass the oauth2 token from Keycloak to FeignClient, i couldn't make the order request work. I read some articles and they use something called a RequestInterceptor but i didn't understand it and couldn't make it work.
What a nice video! I just finished I find it very interesting. thanks a lot! I will be waiting for next. btw I just wannted to say that I couldnt be able to make order works after the security was applied because when order hits customers thourgh gateway, it doesnt contains the token :(, any advice how to solve it? :D
i'm just end up this amazing course. Thankful for your effort and your special tips about distributed application. I would hope to get some notion about security espically when we use openfeign in the other microservice and i think with this only gateway security it work if all the request come from gateway but if the request come from other microservice secure, what's about secuirty with openFeign and restTemplate or WebClient?
This has to be one of the best Java-Spring-Auth-MircoService Tutorial in youtube!
i feel so happy when creators create spring boot tutorials. its very rare, even very less documentation available
Hope you enjoy it!
And the official documentation is not extremely good. BTW, try Thomas Vitale's book, I find it very good.
The long awaited video is finally here, currently watching in parts. great content so far, thanks for delivering this tutorial for free!
Can you also help in how we can scale this application
Hope you enjoy it!
Please take this as a friendly and constructive feedback from a university student who is in the beginning of a journey to become a backend developer. Although the video (or course, if you wanna call it like that) is really comprehensive, there are some bad practices as I noticed. For instance, you do not care about the losely-coupled philosophy, you inject a lot of dependencies in a single service, for example in order service, there are literally 7 injections, and this might be a drawback in point of scalability. But anyhow, I sincerely thank you for sharing this valuable and rich resource with us!
What i like most about this video/course is there is no fluff. Just pure sweetness
wow, thank you
have only completed half of the video course and
Couldn’t wait any longer to appreciate the efforts you put in to give us a very valuable knowledge. The contents of the video course are as per market standards and exactly what any developer will look for. Really thank you so much @Ali. Keep uploading such contents
Glad you enjoyed it
The best professor on Spring Boot and Microservices. How can I give him 1M likes. Great content Sir
@Bouali Ali is a lecturer who is a cut above the rest. Nice and slowly in teachings. He explains all his steps so well. This makes you understand the architectural thinking and you build from first principles! Well done!!!!
He won't rest until everyone is working at the market.
He is amazing❤❤
this is my goal
Good, sound good👍🏻👍🏻👍🏻
@BoualiAli ... lost opportunity to say "You are goddamn right"
As always, very grateful for your videos.
Eagerly waiting for the concepts said in the outro:
- Microservice Patterns
- ELK Stack
- Event Driven
etc...
Really appreciate your efforts
Really, I feel so happy when creators create spring boot tutorials. it's scarce, even very little documentation available..❣❣
This is the first Microservices Spring Boot course I have watched from start to finish, taking notes and practicing along the way. Thank you for taking the time to prepare this and for making it free.
Great job!
The best thing in your tutorial is you go through from high level to low level, and explain each component in the diagram, Thank you so much
This is wow honestly, I work through this over two or more weeks but it pays, Filled with knowledge
Absolutely great tutorial. Thank you so much for this contribution. It really helps me dive into this topic.
THANK YOU SO MUCH THIS IS THE FIRST TIME I HAVE COMPLETED A VIDEO THAAAAAANKS FOR THE EFFORT
ربنا يبارك فيك يا حبيب هي دي زكاة العلم فعلا ❤❤
allah ybarek fik akhi.
Where are you following from?
@@BoualiAli من مصر يا صديقي
@@saeedeldeeb7611 تشرفت
One of the best teachers that I've seen on all platform courses.
Everything is super clear, you know how to catch the attention of your student, you keep everything super simple and trough all the tutorial I'm just waiting to see what comes next.
Your tutorials are full of a lot of interesting things, they are concise but a big number of technologies are touched, that incredible!
All my respect and admiration for your effort
Really glad to hear that
Wowwww Thank you so much!!!!! I have to finish my final Project degree and I made it with microservices....Thank you!!!🎉
Hope you enjoy it!
The amount of hard work u put in is commendable
By far the best Spring course! Congrats!!!!! I have seen the full video. : )
such a good content for spring boot, it is must whoever is learning spring boot. thanks a ton
The best springboot channel
I appreciate it
Thank you... I'm a Dotnet developer but i found you the best one explain microservices
Wow, thanks!
He did it 😂😂. You're just a boss @Ali. Thank you very much for all 🙏
my pleasure
Hi, I have a question - How would you handle the situation when one service (for example: payment-service) cannot process our request and it is necessary to rollback transaction in other services? Is it necessary to use SAGA pattern for compensation request or maybe you know better way ?
Amazing tutorial, thank you!
I faced some issues with tracing with Zipkin. So, I think all the API calls for the same flow should be part of the same trace entry instead of multiple entries. In order to solve it, I removed Feign Client (I was facing issues with load blancer paths), and replaced it with RestTemplate. Once done, all the API calls for the same flow, say order, was part of the same trace, here 9 spans.
Also, please note, don't create your own implementation of RestTemplate as it won't be able to trace the API calls. So, create a bean of RestTemplate by passing RestTemplateBuilder to its parameter of the bean creation. That should fix the issue.
Thank you Bouali, you are a real one. I learned many resources and methods and so much more from your amazing videos. Much appreciations brother
I appreciate that!
I will be binge watching this the entire weekend
Thank you for the great course.
After adding keycloak to the application, the feign clients dont have the authentication access to the other services as tokens are only with the service to which token is passed along with the api. This breaks the order service and the keycloak application has to implemented manually
nadi khay ali ta7iyati mn lmghrib 🇲🇦
Mr @Ali.. I really admire you man... For smart tech teaches... Better than academic... ❤
2 questions:
1 - API gateway is the entry point for all microservices, so it's dealing with authentication. Should the other microservices also be secured and validate the token against the auth server?
2 - How to deal with userId's? Should we use keycloaks userId we get from the token and use like a foreign key in other service databases, like usually (eg: user courses/books/whatever)?
this is just the tutorial i was looking for!!! thank you for the great video!
I have been waiting for long. Thank you sir
Enjoy
Hello, thank you for the explanation.
I have some questions, please:
1. What about the security of other microservices? Is it necessary to secure them? I am using an interceptor to send the JWT between microservices when I use OpenFeign. Is that the correct approach?
2. I am having an issue when securing the discovery service. I allowed the path */eureka/** and required authentication for all other paths. The problem is that I can't see any services in the Eureka service dashboard, and I am also facing issues with communication between services.
3. How can I secure the config service as well?
I would appreciate your help in answering these questions.
You deserve more views and followers 🤴🏽
Hi Bouali Ali,
Thank you for this excellent tutorial! It has been incredibly helpful in understanding Spring and microservices architecture.
I do have a question, though.
Toward the end of the course, when configuring security with Keycloak, everything works perfectly when obtaining the token and making requests to microservices like *Product* and *Customer*. However, when placing an order, the *Order* microservice attempts to fetch the customer information but fails to pass the token to the API Gateway.
Could you please explain how to configure security to resolve this issue?
Thank you!
Excelent Video, my respect, not only code, with a lot of diagrams, I only add a first-api design to the feign microservices
This is pure gold! Thank you for making such a wonderful content!
Great tutorial.Thank you Bouali Ali! Good work.
You are welcome
I have watched 4 of your tutorials now yaah this is another level, thanks very I am learning a lot
Happy to hear that!
Thank you a lot. Excellent idea, video, and explanation. 100% quality material in this video. My Respects.
I would like to point out that the Keycloak section is not committed in the repo and also misses the migration of the config to the configService. However, I was still able to complete it
This what i need, real life scenarios! Thank you!
Sir, I have developed my application following your architecture and coding. Now i am.working on docker image development and finally will deploy through kubernates. Please create a video on Docker image development for the above project. Cheers🎉 for your hardwork..
Already done
Hello Ali, this is a very nice resource, thank you for your efforts.
One question, the front part is not on TH-cam yet? The teacher is the goat
Thank You I have watched the first 2 hours of the course and You have explained concepts in a simplified manner. ❤
Glad it was helpful!
Thoes videos is really helps me a lot in my project in school, thank you ali, all your works is greate
Hope you enjoy it!
Love it, please create some more playlists for microservices using Kafka inter api communication!
Thank you, I will
Hello Bouali, all my services is up but when i did the test in postman return 404 not found error, even when i click the service in eureka
I always appreciate your videos . thank you! Could you consider covering how to implement JWT in a microservices architecture in one of your upcoming videos?
Thanks for the wonderful course! While watching the video, I had a few questions. What happens when a payment fails? How does the order get reverted? I'm curious about transaction management across services. After some exploration, I discovered that the "eventual consistency" principle might be suitable for micro service architecture. While I've heard 2PC is an option, it has several edge case issues so Orchestration or Choreography could provide a solution.
I would appreciate a deeper understanding of these patterns, including their advantages and disadvantages. Additionally, more theoretical insights covering the most other use cases and related scenarios would be beneficial. This is just a request, and I look forward to it whenever you have time. Thanks again!
Thank you so much Mr.Ali. Are you planning to develop the front end for this project using Angular v18 ?
I watched full video , and it was awesome !!! my suggestion to you that you should create full course on microservices from development to deployment. also just like this video , it should be as per current market requirement, real time scenario's with latest technology stack. you can do you it on youtube or paid platforms as per your convenience.
thank you so much the nice feedback.
I provide free content, no need to buy courses.
feel free to contribute and help on youtube if you want to, otherwise, all my content is for free and available in my YT channel.
Enjoy it
@@BoualiAli Thank you so much for this great level course can you cover front-end that consumes this too..
If we were to implement Spring Security JWT Authentication then how would you pass on the token to other services?
Another question if one is auditing using Hibernate envers and uses the security context object to identify who modified what, how can i achieve that in this microservice architecture. I'd really be thankful if you could answer my questions.
Is there any video for front end Part of this project
Thank you Bouali for the amazing tutorial into spring cloud with many industry best practices implementations! Would like to know if you would also be expanding upon this project by demonstrating deployment on this app? Would love to see dockerizing and orchestration of this app, as well as load balancing configuration using api gateway. Would also like to see if you could explain circuit breaking and e2e testing using this application. Thanks in advance!
+1 Also need a basic react front end for the same
Content is awesome and appreciate this channel because most of the new concept updated thus channel
just finished following this tutorial and it's been great, I learned so much! If I may suggest an interesting topic for possible future videos, which I think is alittle under-explored in TH-cam tutorials - distributed transactions. You mentioned SAGA pattern at the end of the video, but it would also be cool to look at other solutions like 2 phase commit and transaction outbox
Great suggestion
Thanks alot. You are saving so many people out there
Awesome tutorial
Hi what tool do you use to create this diagrams with animation?
at 1:51:22 can you post an additional guide on how to use the pgadmin? I kept getting unable to connect to server error
Thank you very much, an excellent course with many concepts to assimilate. Thank you for your dedication and time in sharing your knowledge. I tell you that I was able to replicate the entire course and it is working 100% without errors, thank you for all your effort, I really value it a lot.
Thank you for your excellent teaching style! Your videos are incredibly helpful. Could you please create a new course on Spring Security? It would be greatly appreciated!
Hi Ali,
Thank you for sharing this awesome course with us. Could you please let me know which tool you used for the application architecture diagram shown at 19:56 in the global diagram? Thank you!
draw.io
Hello thanks for the great content, I wanted to ask why you made flyway init database file only for the product service and not for other services? How is database creation in rest of them is handled?
The microservice that flyway uses delegates the creation of the tables to flyway, who, through migrations, creates the tables and subsequently the records to populate them. Regarding the other microservices that use postgres, the creation of the tables is done by hibernate, this is thanks to the spring.jpa.hibernate.ddl-auto=update (create or create-drop) configuration. On the other hand, when using flyway that configuration is set to validate, to validate that the tables created in the database are correctly mapped to your entity.
@@magadiflo-dev hello, can you tell how can I add init data on services without flyway? Is using CommandLineRunner impl Bean a good practice?
@@Asingh42 You can use the import.sql file in the /resources directory. The file will contain the insert statements to the table you want to populate.
In the properties file it is important that you have the spring.jpa.hibernate.ddl-auto=create (or create-drop) setting.
great tutorial. keep up the good work
kindly can you adjust to angular frontend implimentation like booksocialnetwork service
we need the upgrade to ELK stack and also the user friendly interface using react or angular! great resource to learn from!
@Bouali Ali, can I make the mongodb credentials too environment variables like you did for pgadmin ?
Wow, This is awesome content, sir Ali. Thank you very much for sharing your knowledge and understanding with us. I always enjoy your content very much and keepcoding with you
Very nice new lessons. Thank you for this.
My pleasure!
This is excellent, would you mind creating the frontend of it with angular please
Yes, soon
@@BoualiAli I will be waiting for this one🤞
thank you for your efforts in creating this tutorial. It will be amazing and incredibly helpful
You're very welcome!
One hour in and I loved it
Hi @Bouali. I want to implement Spring Data JPA with MySql Db using the same configurations you mentioned. Seems like my customer-service app is not accepting the spring-data-jpa dependency. I am getting errors if I implement spring data jpa. Care to put some more light onto it?
Thank once more sir.
Having one question. why to use RECORD intead of using DTO?
Record basically is Syntactical Sugar for a Immutable class. It gives you Getter Setter , and All Args Constructor , equals and HashCode.
SO for making a DTO it is easy to just make a record Class and define Props in constructor.
PS: It makes Code Look clean and we dont have to use Lombok Annotations
Hello sir, I have a remark about the Customer-service
You have declared an id field in the CustomerRequest, in this case you are letting the user enter his id, and so if he entered an old id, a collision would happen and the data of old user will be deleted from the database
Thank you so much mr.Bouali that is a great playlist and very useful for me
You are very welcome
Hi! what tool are you using for drawing the diagram?
draw.io
all looks great but after implementing keycloak, when i tried to submit a order using a fresh token the authentication failed because get customer ms is getting called internally and there the the token validation is failing, without keycloak order can be placed with no issue. Am i missing something?
@BoualiAli
will be waiting your response.
i am also waiting for a response
Great video, helped me a lot with building my first microservices! I am so grateful to you!
Do you know how to ignore logging of health checks in tracing? Because there are a bunch of noise when I query logs. Thank you in advance
Thank you so much for this masterpiece
You're very welcome
Can u please prepare a vedio to deploy this using kubernates, jenkins and cicd pipeline in aws and need sonar cube tool set up also
You are amazing ❤ Thank you so much for your great contribution 🎉 I would like to request to create a complete E-commerce application from dev to deployment using all required tech and also please use jwt this time 🙏
Already done, check the playlist (Book social network)
also a new one is coming soon
Thank you, amazing tutorial as always! Please add a feature to pass the oauth2 token from Keycloak to FeignClient, i couldn't make the order request work. I read some articles and they use something called a RequestInterceptor but i didn't understand it and couldn't make it work.
Amazing course! Thank you!
You're very welcome!
What a nice video! I just finished I find it very interesting. thanks a lot! I will be waiting for next.
btw I just wannted to say that I couldnt be able to make order works after the security was applied because when order hits customers thourgh gateway, it doesnt contains the token :(, any advice how to solve it? :D
Can you guide grafana, prometheus, minIO, elk stack...
This is a really amazing lesson, thank you, Ali! I'm just wondering why did you use double a double type to denote a quantity instead of an integer?
you can buy a 1,5 meters of a wall paper, so it should be a double
Very very informative session. Thanks for providing all these content. Can you also work on how to dockarize microservice project.
Yes, soon
i'm just end up this amazing course. Thankful for your effort and your special tips about distributed application. I would hope to get some notion about security espically when we use openfeign in the other microservice and i think with this only gateway security it work if all the request come from gateway but if the request come from other microservice secure, what's about secuirty with openFeign and restTemplate or WebClient?
Thank you for this amazing this course
This is really good. Thank you.💯
Bless your efforts, man.
Keep it up. 🎉
Much appreciated!
is it advisable to use same data Base for microservices and have Relationship between them
Awesome! Will this project be extended by frontend and maybe kubernetes? Some course with grpc would also be nice 😁
That's an impressive content of microservices! Great job, Bouali
Glad you think so!