Handling Failures in Message Driven Architecture

Handling Failures in Message Driven Architecture

CodeOpinion

3 года назад

15,232 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@allinvanguard
@allinvanguard - 09.06.2021 17:26

Great video! I have a question - What is the usual process of continuing with deadlettered messages? Are these messages scheduled by the queue after X amount of time? Would the consumer actively try to re-query these messages once it knows that is is now capable of processing them?

Ответить
@sathyajithps013
@sathyajithps013 - 09.06.2021 18:21

I was literally sitting down to create two queues for processing purchases in my on going project and this video dropped. What a timing! I always thought of just retrying or burying the message to the back of the queue or just creating a new queue for failed messages. Excellent video once again. 👌

Ответить
@bruno.arruda
@bruno.arruda - 09.06.2021 19:54

Nice video!
Do you have some vision or any draft of how potentially Distributed Circuit Breaker could be?
Another service between the multiple instances and external services? Or any framework/library already doing such a thing?
Thanks!

Ответить
@vinylwarmth
@vinylwarmth - 09.06.2021 21:35

Appreciate this video, thanks. Doing a lot more messaging in my latest role so finding your videos extremely useful 👍

I'm notice you use Kafka in many of your videos. Have you got a blog post/video on why or how you'd choose between Kafka/Service bus/Event grid? I'd be interested to learn about that

Ответить
@edenr1988
@edenr1988 - 09.06.2021 23:36

Very clear, I like the way you explain, keep it up 👍

Ответить
@varshard0
@varshard0 - 10.06.2021 07:30

Funny enough, I presented message driven architecture in my company's knowledge sharing session 2 days ago. Had you upload the video sooner, I could've just show your video and just eat popcorn.

Ответить
@varshard0
@varshard0 - 10.06.2021 07:42

A trick for an exponential back off that doesn't hang up your worker node that I did was using multiple queues as a sort of psuedo dead letter queues.

1. Create a few queues and set the working queue as their dead-letter queue.
2. Set different message TTL based on each back-off period on each queue. So, when a message is expired, they will be requeue in the workin queue.
3. When a fail message on a consumer node, the node will increment nuimber of retries in the message header, then throw the message to the psuedo dead letter queue. ie: retries = 1, send it to the queue 1.
4. After the message is published to a psuedo dead letter queue, the consumer will ACK message back to the working queue toT remove the message.

You need multiple queues with different TTL instead of setting TTL on each message, because TTL on each message will be taken into account only when the message is at the head of a queue. So, a message with short TTL have to wait for a prior message with a longer TTL to be expired first. A head of the line issue.

Ответить
@andersjuul8310
@andersjuul8310 - 10.06.2021 08:11

Nice! This kicks off the day beautifully here in Denmark :)
Especially: Emphacising business involvement in how we should handle errors and the hold-up caused by retries within handling of a specific message.
Please, please keep it up! I love it! :)

Ответить
@glaydersen
@glaydersen - 10.06.2021 11:16

Really helpfull, as always! Thanks for the video!

Ответить
@thanhvo2092
@thanhvo2092 - 10.06.2021 16:49

Like before watching, thank you!

Ответить
@manan5
@manan5 - 10.06.2021 19:10

Glad i found your channel. Really advance concepts in such a nice and crisp video.

Ответить
@3sviat
@3sviat - 11.06.2021 12:47

Thank you for your videos!

I like the idea of loosely coupled monolith but I think in real world too few projects starts with this approach. Could you share your thought about strategies how to move out from coupled monolith when it is live on production? Have you had such cases in your practice?

Ответить
@yamirtomas
@yamirtomas - 09.08.2021 03:24

jesus man, you just keep making super interesting videos! keep it going! and thanks!

Ответить
@arikshapiro4056
@arikshapiro4056 - 01.09.2021 11:26

What would you do if you have a client that sent the initial command that started the flow asynchronously, but needs to know if a failure happened? would you have the client consuming from the deadletter queue to check if there's a matching message? or would you send a MessageFailed msg to the message broker yourself and have the client consuming those?

Ответить
@cbaxtermusic
@cbaxtermusic - 03.09.2021 04:32

you have the best, most consumable videos on very complex topics. I love this channel. I'm shocked you are not at 1mil followers yet.

Ответить
@tony-ma
@tony-ma - 28.10.2021 08:21

I can spin up multiple projections services (same projection but multiple instances in the kubenetes for mutiple processing) for one persistant subscription from the eventstore?

Ответить
@carlosmauriciorebolledosie6286
@carlosmauriciorebolledosie6286 - 17.09.2022 21:46

Hi, great content on this channel. I would like to know if there is a demo in code about how to build a dead letter queue mechanism, if I become a member could I find this demo?

Ответить
@neha6000
@neha6000 - 26.01.2023 17:44

Hi where I can see practicle implementation..?

Ответить
@voduyquang4778
@voduyquang4778 - 31.08.2023 09:10

Oh really I want to say thank you. You make the videos along with documents that very clear and more professional. The topics are very interesting nowadays. The big thanks for you pls keep it up!!!

Ответить