I tried ranking Node.js Design Patterns
10:35
Node.js "Event Emitters" Explained
9:50
3 місяці тому
The Broken Senior-Only Developer Market
7:11
5 місяців тому
How to make your application scalable?
12:16
5 місяців тому
What the hell is JavaScript's Intl API?
8:01
6 місяців тому
КОМЕНТАРІ
@Afala_akounou_3abdan_chakouran
@Afala_akounou_3abdan_chakouran 22 години тому
Please my husband is software engineer can you help him finding job in Germany Deutsch B2 English C1
@remikpadonou2417
@remikpadonou2417 День тому
Thanks a lot
@andydataguy
@andydataguy День тому
This is so useful! Needed done help untangling spaghetti and now I've got a deeper understanding of these tools
@multiverse915
@multiverse915 2 дні тому
Bro explained useMemo and useCallback hook in a much easy manner 👏👏
@BudetSvobodnoy
@BudetSvobodnoy 5 днів тому
Спасибо! Меня на собеседовании спросили про микрофронтенд и я был в растерянности. Хотя я до сих пор не понимаю, зачем мне знать такое как энтри-левел разработчику
@karankhaira2656
@karankhaira2656 5 днів тому
Fantastic video! I especially liked you mentioning anti patterns. They helped a lot with understanding the concepts
@move1649
@move1649 5 днів тому
Assuming your analysis is based on the article from the tinder engineer who build this API Gateway, please check the comments below from that article...not a single person agrees with the author's choice (well maybe not his choice). It's the taking credibility game inside of corp, build something -> rebuild another thing -> build something again...everyone is happy On the other hand, the overall work might not be that big since they built it on top of Spring Cloud Gateway, it's not like they build everything from scratch
@user-so7vz3is9t
@user-so7vz3is9t 7 днів тому
Anyone has an idea on how to handle duplicates in an async context ?
@nazmussakib5799
@nazmussakib5799 7 днів тому
Thanks a lot for sharing
@VitalMercenary
@VitalMercenary 7 днів тому
Thank you for this video. I really enjoyed it!
@Aleks-fp1kq
@Aleks-fp1kq 7 днів тому
Hello and thank you for the video. I've got some questions as usual 😊 1. Shared database may be an antipattern but in your example it's not clear why. Because even if you have multiple instances of the same service and a dedicated db, deadlocks can still occur even more likely that if there were two instances of different services. I didn't understand how the shared db affects scalability of the service. I think it is not about having a separate db as a must, it's more about no overlap within the db per service and you can find this pattern on microservices website. 2. 6:47, I think that is not a two phase commit, it's just showing how to commit or rollback. Two phase committing is transparent until a problem happens. OrderService cannot tell payment service to commit at the DB level. There are DB and semantic commits. 3. 10:26, if I am not wrong, that is not the saga pattern, but a queue. Saga has a lot more stuff.
@IkromAuliaFahdi
@IkromAuliaFahdi 7 днів тому
great content
@Anand-uw1tx
@Anand-uw1tx 7 днів тому
Hello Sir, Thanks for the awesome videos. Love from India. If you could write the code and some some example code or provide some example code it would be more appreciated. It's only a suggestion Sir, but having said that your videos are very informative and relevant to real time issues which we might face.✌
@fullfungo4476
@fullfungo4476 7 днів тому
The sound is so broken😢 It could’ve been a decent video if not for the super annoying sound problems.
@sauravkumarsharma6812
@sauravkumarsharma6812 7 днів тому
I have one doubt also when to use kafka and when rabbitmq i read some where kafka is log base and rabbit mq is in memory..????
@sauravkumarsharma6812
@sauravkumarsharma6812 7 днів тому
hello sir this is best explanation video . i was send connection request linkdin please accept
@fullstack_journey
@fullstack_journey 7 днів тому
great video!
@diwakarisonyoutube
@diwakarisonyoutube 8 днів тому
I'm so early that higher resolution is just not available yet.
@oguznsari
@oguznsari 8 днів тому
same for me 😅
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 8 днів тому
Hahaha should be sharper now
@gourabsarker9552
@gourabsarker9552 8 днів тому
Sir do you earn 100k euros a year as a software engineer? Plz reply. Thanks a lot.
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 8 днів тому
No, I don't 🙂
@gourabsarker9552
@gourabsarker9552 8 днів тому
@@SoftwareDeveloperDiaries which country do you live in?
@Aleks-fp1kq
@Aleks-fp1kq 7 днів тому
I do, even more than that 😂
@viplikeit
@viplikeit 8 днів тому
great explanation, thanks
@DiogoLScarmagnani
@DiogoLScarmagnani 8 днів тому
Then it's very useful if we use useCallback for functions inside my provider and also useMemo for the provided values?
@TannerBarcelos
@TannerBarcelos 9 днів тому
Awesome video. Your content is teaching me a ton, and it all makes sense when I listen to your content over some others here on YT. I did have a question In the payment processing example, when the client is making the request to make an order, if the payment service succeeds and therefore the order service can update the orders for the user, wouldn't the user simply be moved on to the success screen irregardless of what happens down stream (inventory service update, email service etc.) ? I would assume from the clients perspective, they should not be at the mercy of the rest of the systems processing and should only care about if the payment was processed and their money was taken out or not.
@vmmoorthi
@vmmoorthi 10 днів тому
So helpful to understand the real world application architechture
@paperC_CSGO
@paperC_CSGO 10 днів тому
Please do more browser dev tools stuff, especially performance in a big live site with loads of requests going on
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 10 днів тому
I'm thinking about making a separate course on JS performance, so stay tuned!
@paperC_CSGO
@paperC_CSGO 10 днів тому
@@SoftwareDeveloperDiaries great news, thank you!
@nchaganlal
@nchaganlal 12 днів тому
Adding version to endpoints and resources on their address/query strings leads to a brittle implementation.. always better to have API version and resource version on the HTTP headers. This will enable a better developer experience and less coupling between your microservices.
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 10 днів тому
Thanks for the insight!
@Aleks-fp1kq
@Aleks-fp1kq 12 днів тому
1. 10:00 How can order-service forget about purchase when it is possible that while the payment was processed the product's balance dropped to 0 (zero)? 2. how to handle the case when inventory-service processes the event but fails to send the ACK message? 3. does the broker has to ACK back the ACK message? If yes, what if inventory-service fails to receive it? 4. event sourcing doesn't cause eventual consistency, but event driven architecture. 5. so how CQRS helps with the two DBs? 6. in reality our systems are hybrid depending on the communication scenario. as in, some services may opt for messages, some for sync communication.
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 10 днів тому
Thanks for your questions, I will try to answer them 🙂 1. If the payment fails, no event will be emitted. But once it is emitted, the service forgets it. That's what was meant by "forgetting". 2. You have multiple strategies depending on your use case and needs: a. Retry Mechanism: Implement a retry mechanism in your microservice. If the database operation fails, the service can try again after a certain period. b. Dead Letter Queue: If the error persists after several retries, you can send the message to a Dead Letter Queue (DLQ). The DLQ stores messages that could not be processed successfully. You can later analyze these messages and decide how to handle them. c.Event Sourcing: If a failure occurs, you can replay the events to bring your application back to a consistent state. d. Compensating Transactions: If your operation has side effects, you might need to execute a compensating transaction to undo the changes in case of failures. 3. No, the broker doesn't have to ACK back. It's more of a "fire and forget" pattern, meaning the event publisher usually doesn't wait for an ACK. 4. Agree :) 5. It doesn't. 6. Exactly.
@TannerBarcelos
@TannerBarcelos 12 днів тому
The best video explanation of this very critical issue high scale, highly reliable systems face. Subscribed!
@maksymshyshkov2787
@maksymshyshkov2787 12 днів тому
good video. sorry for changing 666 thumbs up to +1 )) but I can't just pass by
@tusharjagtap6118
@tusharjagtap6118 12 днів тому
very important information you have shared, please keep making such informative videos
@troooooper100
@troooooper100 13 днів тому
oniy idiots netflix wanna be with 3 engineers use micro service and events are just microservice and instead of using rest/queues they are using events which are also in queues
@raphauy
@raphauy 14 днів тому
Thank you!
@ayushpatel2171
@ayushpatel2171 14 днів тому
I am unable to understand the importance of Object.setPrototypeOf(this, new.target.prototype). Can you please explain the significance of this line.
@ayushpatel2171
@ayushpatel2171 14 днів тому
Do we have to create our own error dictionary or is there some sort of npm package for it?
@dikatok
@dikatok 14 днів тому
I don't think event sourcing and cqrs have anything to do with EDA at all, they are individual patterns that can be used without any of the other patterns
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 10 днів тому
Indeed, they are individual patterns. But EDA often relies on those :)
@AmarMishra
@AmarMishra 14 днів тому
Great work....can you please cover. RabbitMq in a separate video. May be conceptualize it as a class object . So that we can have publisher and consumer as 2 member methods of the same instance of rabbitmq client. Was wondering if we can have a separate worker thread for consuming the event.
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 10 днів тому
I'll cover that in a separate video soon!
@sauravkumarsharma6812
@sauravkumarsharma6812 14 днів тому
Thanks for such a good knowledge make some practical or reference some git repo
@abhilashkr1175
@abhilashkr1175 14 днів тому
Thanks for the video. This is all theory but pls implement it
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 14 днів тому
Will do in one of the next videos 🤙
@prashlovessamosa
@prashlovessamosa 14 днів тому
Can you please implement all that stuff it would be too helpful
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 14 днів тому
I can! Just stay tuned 😊
@prashlovessamosa
@prashlovessamosa 14 днів тому
@@SoftwareDeveloperDiaries great will wait for it.
@emperoralthaf6264
@emperoralthaf6264 14 днів тому
​@@SoftwareDeveloperDiariesHey that's awesome brother 🔥. Would like to see a payment integration using event driven architecture ❤.
@cannabisanomaly
@cannabisanomaly 15 днів тому
Just to clarify for anyone, at 5:58 the +author and -datePublished means that the author category will be sorted in an ascending order and datePublished will be sorted in a descending order
@paperC_CSGO
@paperC_CSGO 15 днів тому
Please do a video on monorepos!
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 15 днів тому
Already have one! 🙂
@sinamobasheri
@sinamobasheri 15 днів тому
🤍🍻
@alexenax1109
@alexenax1109 15 днів тому
Master, do you have any course about topics like this and any other advanced topics about Node.js? Or can you suggest some that you consider valuable?
@saurabhtalele1537
@saurabhtalele1537 16 днів тому
Thanks nice.... I just want to ask in one core there are multiple processes....or processes is equal to core. ??? Thanks
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 10 днів тому
By default - no, everything will run on a single core. But with the cluster mode - yes.
@Gbw99
@Gbw99 16 днів тому
hey! first of all thanks for the video, I landed here because I was looking at my code and I was thinking there was something wrong with this part of the code and I knew I could do something cleaner. And your video showed me how to :)
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 10 днів тому
Glad I could help! 🤓
@Black-xq9ey
@Black-xq9ey 18 днів тому
Sir Which theme you are using? It's cool for the eyes.
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 10 днів тому
Hey mate, it's called "Palenight (Mild Contrast)"
@rjwhite4424
@rjwhite4424 18 днів тому
I can't wait for React 19's compiler to come out so I don't have to bother with this.
@LuisGutierrez-ct6iw
@LuisGutierrez-ct6iw 19 днів тому
Nice video man, but I still feel curious about what is the main difference using this approach rather than NodeJS cluster mode, I mean what are the special scenarios where is useful to use either worker_threads, cluster mode with NodeJS or PM2 and child processes, is it also recommended to use all of them in the same app? Thank you in advance
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 18 днів тому
Hey mate! Thanks for watching the video and for your thoughtful question! When it comes to handling concurrency in Node.js, there are indeed several options like child processes, Node.js cluster mode, and tools like PM2. Each has its own strengths and best-fit scenarios. Child processes: These are great when you need to run separate tasks concurrently, like handling CPU-intensive operations or interacting with external processes. Imagine you're building a web server with Node.js, and you need to generate PDF reports on the fly in response to user requests. However, generating PDFs is a CPU-intensive task that could block the event loop. Here, you could offload the PDF generation to a child process, allowing your main server to continue handling incoming requests without being blocked. Node.js cluster mode: This is specifically designed for scaling your Node.js application across multiple CPU cores. It's ideal for network-bound applications where you want to take advantage of parallelism to handle multiple requests simultaneously. Suppose you're developing a chat application where multiple users can connect simultaneously. Each incoming connection triggers some processing on the server, such as authentication and message handling. By using cluster mode, you can spawn multiple instances of your application across CPU cores, allowing you to handle more concurrent connections efficiently. PM2: PM2 is more of a process manager that helps in running and managing Node.js applications in production environments. It can handle clustering, monitoring, and auto-restarting of processes, making it convenient for deployment scenarios. Let's say you have a production-grade API serving hundreds of requests per minute. You want to ensure high availability and automatic restarts in case of failures. PM2 can manage your Node.js process, keeping it running smoothly by automatically restarting it if it crashes. Additionally, PM2 can monitor CPU and memory usage, allowing you to scale your application vertically or horizontally as needed. As for whether to use all of them in the same app, it really depends on your specific use case. Generally, you wouldn't use child processes and cluster mode together since they serve similar purposes. However, PM2 can complement either of them by providing additional management features. Hope this was helpful 😊
@paperC_CSGO
@paperC_CSGO 20 днів тому
Please more of these type of videos where you explain theories with real world example. Very useful for me working in a big company primarily on frontend, but want to understand what's going on elsewhere in the backend
@SoftwareDeveloperDiaries
@SoftwareDeveloperDiaries 18 днів тому
More to come! 😎
@jeancharliecharlie
@jeancharliecharlie 22 дні тому
Nice video bro. I might not have a brain, but i got an idea.
@AllenThomasVarghese
@AllenThomasVarghese 23 дні тому
I am surprised to hear that they ruled out KrakenD. It was pretty good and scaled well horizontally with a good filter chain for various uses. For any configuration, you would have to use Golang though since it is written in Go. If Java was a prevalent language internally in Tinder, that would explain why they didn't go for it.