The Brand New Way to do Fault Handling in Polly V8

Поделиться
HTML-код
  • Опубликовано: 13 июл 2024
  • ☄️ Master the Modular Monolith Architecture: bit.ly/3SXlzSt
    📌 Accelerate your Clean Architecture skills: bit.ly/3PupkOJ
    🚀 Support me on Patreon to access the source code: / milanjovanovic
    Polly v8 was just released, and it comes with a redesigned API for fault handling. We're no longer using fault handling policies - now they're called fault handling strategies or resilience strategies. In this video, I'll show you what the new API looks like and compare it to the old API. And we'll take a look at some benchmarks to see what are the performance improvements.
    Join my weekly .NET newsletter:
    - www.milanjovanovic.tech
    Read my Blog here:
    - www.milanjovanovic.tech/blog
    Chapters
    0:00 How the Polly V7 API looks like
    5:02 Taking a look at Polly V8 ResiliencePipelineBuilder
    9:23 Supporting cancellation with Polly
    10:39 Creating a Fallback resilience strategy
    11:48 Dependency injection support in Polly V8
    14:46 Discussing Polly V8 benchmarks
  • НаукаНаука

Комментарии • 55

  • @MilanJovanovicTech
    @MilanJovanovicTech  9 месяцев назад +3

    If you want to accelerate your .NET and software architecture skills, consider joining The .NET Weekly - my newsletter with 29k+ engineers.
    Subscribe here → www.milanjovanovic.tech

  • @sanampakuwal
    @sanampakuwal 9 месяцев назад +8

    The Performance Improvement is literally impressive (mainly 0 allocation)

  • @pepega8572
    @pepega8572 2 месяца назад +1

    Bro, your content is amazing. This is the second time I've needed to figure out how to use new library, and you help me with this. Thanks!) Keep doing this way)

  • @user-vb5pg3pm3z
    @user-vb5pg3pm3z 9 месяцев назад +3

    great video, Milan. Your explanations are always top-notch. Thank you and keep up the good work!

  • @Sammy2100
    @Sammy2100 2 месяца назад

    I am switching to this ASAP. Thanks for sharing.

    • @MilanJovanovicTech
      @MilanJovanovicTech  2 месяца назад +1

      Check out this: www.milanjovanovic.tech/blog/building-resilient-cloud-applications-with-dotnet

    • @Sammy2100
      @Sammy2100 Месяц назад

      @@MilanJovanovicTech yes, I got this email notification and found this video from it.
      i have updated my .net8 code using this and its awesome. Thanks.

  • @josefromspace
    @josefromspace 4 месяца назад

    Great video, thank you very much.

  • @baranacikgoz
    @baranacikgoz 9 месяцев назад +1

    Impressive video.

  • @richardaubin1951
    @richardaubin1951 8 месяцев назад +1

    I've been playing around with this new version for a few hours now, and it's much easier to grasp then the previous version. Could you have a go at a video on the Dynamic Reload functionality? I think it would be good to see that in action for concurrent rate limit, retry and circuit breaker options.

    • @MilanJovanovicTech
      @MilanJovanovicTech  8 месяцев назад

      Will take a look at it!

    • @tjagusz
      @tjagusz 2 месяца назад

      @@MilanJovanovicTech I just found this video, a circuit breaker would be awesome, especially in a microservice architecture, when for example you have a lot of messages to process and you are relying on an external API that can fail, so instead of only retrying we should stop trying for a specific time. Looking forward to this content in the next video ;)
      BTW another useful video. Thank you!

  • @antonmartyniuk
    @antonmartyniuk 9 месяцев назад +2

    Interesting new concept of the library. Gonna look how the new http extensions package looks like, in most cases I prefer adding policies (strategies) when registering http client as factory in DI.
    The important thing to mention: Polly v8 doesn't need a Wrap to combine policies, it combines them automatically. And othe order is FIFO instead of FILO in Wrap policy in v7

    • @MilanJovanovicTech
      @MilanJovanovicTech  9 месяцев назад

      I'll have to check for wrapping. The one test I did I got some strange behavior in the end.

    • @antonmartyniuk
      @antonmartyniuk 9 месяцев назад

      @@MilanJovanovicTech I read about wrapping on the official site

  • @okcharles7
    @okcharles7 9 месяцев назад +1

    As I was introduced to this kind of technique for the first time by this video, I just wonder what is the performance benefit over try-catch.

    • @MilanJovanovicTech
      @MilanJovanovicTech  9 месяцев назад

      The benefit is fault handling and recovering from the exception - not necessarily the performance

  • @vikas4483
    @vikas4483 9 месяцев назад +1

    Could you please make a video on best practices with sample examples on exception handling in mvc core applications

    • @MilanJovanovicTech
      @MilanJovanovicTech  9 месяцев назад

      Check this out for the time being: ruclips.net/video/H3EbflpXVmo/видео.html

    • @vikas4483
      @vikas4483 9 месяцев назад

      @@MilanJovanovicTech Thanks 🙏

  • @antondoit
    @antondoit 6 месяцев назад +1

    Great

  • @PKMuhammedSaeed
    @PKMuhammedSaeed 3 месяца назад

    Please make a video on latest
    Microsoft.Extensions.Resilience library

  • @tiagosantos2136
    @tiagosantos2136 2 месяца назад

    In a clean architecture, where is the best place to put resilience strategies? in endpoints, applicatio layer, infra?

  • @PelFox
    @PelFox 9 месяцев назад +1

    Can you still hook it into service container for HttpClient? That's how I've generally used it to handle 5xx errors for all added clients.

    • @MilanJovanovicTech
      @MilanJovanovicTech  9 месяцев назад

      Yes, you can still use the Polly extensions package

  • @MsbowElite
    @MsbowElite 6 месяцев назад

    Please create a video building Unit test for http clients and retry policies.

  • @claudiovalerio7253
    @claudiovalerio7253 9 месяцев назад +1

    Is it just me or the new builder stuff seems a step back?
    I mean, it probably would benefit some complex policy composition, but for simpler policies seems to be an awful lot of additional code needed to have the same result.
    Performance improvements are impressive, though...

    • @MilanJovanovicTech
      @MilanJovanovicTech  9 месяцев назад

      I don't mind it, since you probably define these policies in one place and reuse them

  • @exeC13
    @exeC13 9 месяцев назад

    Using magic strings is always something that worries me.
    "How many refs does your di-pipeline-provider have / is it used at all?". [Ctrl]+[Shift]+[F] to the rescue 😖
    "Great, no compile errors" ... Runtime steps in and alerts you about a typo in your magic string 🎉

    • @MilanJovanovicTech
      @MilanJovanovicTech  9 месяцев назад +1

      It's a demo damn it... Of course you will use constants 😁

  • @xxXAsuraXxx
    @xxXAsuraXxx 5 месяцев назад

    is AddResiliencePipeline scope or transient?

    • @MilanJovanovicTech
      @MilanJovanovicTech  5 месяцев назад

      "The resilience pipelines are registered in the DI container as transient services." - www.pollydocs.org/advanced/dependency-injection.html

    • @xxXAsuraXxx
      @xxXAsuraXxx 5 месяцев назад

      I see but it’s cached so it won’t be a new pipeline instance everytime thanks

  • @aakashamatya3580
    @aakashamatya3580 8 месяцев назад +1

    The syntax has become too verbose.

  • @ronaldschutte7948
    @ronaldschutte7948 8 месяцев назад

    Way to complicated

    • @MilanJovanovicTech
      @MilanJovanovicTech  8 месяцев назад

      Not much different. We'll see where they go from here.

  • @squadwuschel
    @squadwuschel 9 месяцев назад +1

    How about unit Testing an Mocking the new Poly plicies in your code?

    • @lettuceturnipthebeets790
      @lettuceturnipthebeets790 9 месяцев назад

      since it supports DI and is fully based on instances now, I think it makes it even easier to prep and test the policies honestly :0

    • @MilanJovanovicTech
      @MilanJovanovicTech  9 месяцев назад +1

      Isn't it easier than with a static class?

    • @W1ese1
      @W1ese1 9 месяцев назад

      @@MilanJovanovicTech Question is: should you even mock the policies? I'd say no. Because in reality you want to test the scenario where the code fails for which you use the polly pipelines

  • @techpc5453
    @techpc5453 9 месяцев назад +1