5 Tips for Building Resilient Architecture

5 Tips for Building Resilient Architecture

CodeOpinion

1 год назад

12,304 Просмотров

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


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

@zonegamma8197
@zonegamma8197 - 15.07.2024 02:18

very interesting, thanks

Ответить
@xwolkyx
@xwolkyx - 30.12.2023 12:16

All the problems discussed in this video and more can be automatically solved with the Actor model architecture. It's astonishing that most people are not familiar with this architecture.

Ответить
@gadeichhorn
@gadeichhorn - 15.10.2023 12:08

thanks for sharing, this is gold.

Ответить
@jodyscheckter11
@jodyscheckter11 - 06.08.2023 23:01

24 carat gold 🤘

Ответить
@pilotboba
@pilotboba - 05.08.2023 21:00

If you move to queuing, have a fallback for your queues too. :)

Ответить
@jcdenton8298
@jcdenton8298 - 04.08.2023 22:27

Would love to see a video on whatever tips you may have on gathering metrics and/or setting up alerts.

Ответить
@raghuveerdendukuri1762
@raghuveerdendukuri1762 - 04.08.2023 20:34

While I agree with asynchronous queue based approach to deal payments in general, this approach ay not work and only synchronous approach only works when consumer is mandated to input otp on sms/email before payment is authorized even when payment is triggered based on stored card details.

Ответить
@SOYLUISO
@SOYLUISO - 04.08.2023 15:40

when you talk about having fallbacks with 3rd party services, could that be for example a caché? that would only work for queries, what about fallbacks for POST endpoints or something to create data? thanks!

Ответить
@marcom.
@marcom. - 04.08.2023 09:12

Thanks, this is really a helpful composition of tipps. I think I will contact my colleague who wants to define standards for application monitoring and bring it together with my EDA plans and your tipps for synchronous fallbacks.

Ответить
@bilbobaggins601
@bilbobaggins601 - 03.08.2023 18:45

For the competing consumers use case, does this work for messages for which order needs to be pertained? If not, how do you handle this case? I guess we could do some routing in the broker?

Ответить
@LeviRamsey
@LeviRamsey - 03.08.2023 16:50

The advice in this video is broadly consonant with the Reactive Manifesto, especially with the point that asynchronous message passing supports both elasticity and resilience (which together ensure responsiveness in both the happy and unhappy situations). The more of the system that is based on asynchronous message passing, the more resilient, elastic, and responsive it will tend to be.

When building a system around asynchronous message passing, the metrics around the queues allow backpressure: a component that's not able to keep up with the load effectively communicates that it's not keeping up (from queue metrics alone, this is measurable from the derivative of queue depth). The producers to those queues can slow themselves down or perform other traffic-shaping in response.

Ответить
@luffymonkey6967
@luffymonkey6967 - 03.08.2023 16:37

Solid info, thank you

Ответить
@DeepWorksStudios
@DeepWorksStudios - 03.08.2023 16:32

Thanks for this valuable contetnt you producing.
Keep on that! :)

Ответить
@Mosern1977
@Mosern1977 - 03.08.2023 16:17

Very good video. Generally speaking, error handling can easily be harder to handle, than the happy path.
For example:
Your timeout example of 500 ms, might suddenly cause duplicate data downstream if the external system does eventually process your initial request, and you retry it too eagerly. Is that a problem? Maybe.
Depends on the external system, and how that works. Maybe it rejects duplicates, maybe it overwrites, or maybe it duplicates.
Maybe duplicates isn't a problem, maybe it is a critical issue.
As long as you keep in mind how to handle error scenarios just as much as the actual work, then you should be fine.

Ответить