We may earn an affiliate commission when you visit our partners.
Jason Roberts

In this course, we learn how to use the open source .NET Polly library to automatically retry operations rather than failing on the first exception.

Read more

In this course, we learn how to use the open source .NET Polly library to automatically retry operations rather than failing on the first exception.

By the end of this course you’ll know how to effectively and easily handle temporary transient errors in applications and provide great user experiences by creating more robust and resilient applications that don’t interrupt the user unnecessarily. Transient errors such as temporary network connectivity problems or fleeting database problems can cause more users to report errors and more error log entries that can waste valuable developer time. In this course, we learn how to use the open source .NET Polly library to automatically retry operations rather than failing on the first exception.

Enroll now

What's inside

Syllabus

Introducing Polly
Using the Retry Forever and Retry Policies
Using the Wait and Retry and Circuit Breaker Policies

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops Polly for C# skills, which are core skills for .NET developers
Taught by Jason Roberts, well-regarded instructor in the domain of .NET
Examines exceptions handling in .NET, which is highly relevant to industry
Builds a strong foundation for beginners in handling transient errors
Introduces Retry and Retry Forever policies
Teaches concepts with Wait and Retry, Circuit Breaker Policies

Save this course

Save Better User Experiences and More Robust Applications with Polly 2 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Better User Experiences and More Robust Applications with Polly 2 with these activities:
Review Concepts of Transient Errors
Refresh your understanding of transient errors, their characteristics, and why it's crucial to handle them differently from permanent errors.
Show steps
  • Review documentation or articles on transient errors.
  • Identify examples of transient errors in real-world applications.
Review Error Handling Fundamentals
Strengthen your foundation by reviewing the basics of error handling, different types of errors, and best practices for handling them effectively.
Browse courses on Error Handling
Show steps
  • Review documentation or articles on error handling.
  • Practice handling errors in a sample project.
Review retry code patterns in existing .NET applications
You can pick up a lot from looking at how more established developers handle errors and retry patterns. Look for the 'Polly' library and notice how it is implemented in real world applications.
Browse courses on Exception Handling
Show steps
  • Look through open source .NET projects for use of the Polly library.
  • Join a forum for .NET programmers and ask how they implement retry logic.
  • Clone open source projects that use Polly. Run the application and debug the error handling code path.
Six other activities
Expand to see all activities and additional details
Show all nine activities
Participate in Polly User Group Discussions
Connect with other Polly users and learn from their experiences, best practices, and innovative solutions.
Browse courses on Polly
Show steps
  • Join online Polly user groups or forums.
  • Participate in discussions and share your knowledge.
  • Seek support and advice from the community.
Practice Retry Policies with Code Exercises
Solidify your understanding of retry policies by completing coding exercises that simulate real-world scenarios.
Browse courses on Polly
Show steps
  • Set up a development environment with Polly.
  • Implement retry policies in sample code projects.
  • Test and debug your retry implementations.
Explore Advanced Polly Features with Tutorials
Expand your knowledge by exploring tutorials that cover advanced features of Polly such as custom retry logic, circuit breakers, and bulkheading.
Browse courses on Polly
Show steps
  • Identify tutorials that align with your interests and skill level.
  • Follow the tutorials and implement advanced Polly techniques in your projects.
  • Share your findings and insights with the community.
Simulate transient errors in a program to test retry logic
You can learn by intentionally creating errors that will trigger error handling logic in your application. This will help you see how Polly handles retries, timeouts, and circuit breakers.
Show steps
  • Create a simple function that simulates a network request.
  • Occasionally, return an error from the simulated network request.
  • Wrap the simulation function with a Polly policy that will retry a certain number of times when the function returns an error.
  • Run the simulation and observe how Polly handles the errors.
Build a Troubleshooting Guide for Transient Errors
Enhance your problem-solving skills by creating a comprehensive troubleshooting guide that outlines steps to identify and resolve transient errors using Polly.
Show steps
  • Gather information about common transient errors.
  • Identify potential solutions for each error.
  • Develop step-by-step troubleshooting instructions.
  • Test and refine your guide.
Assemble a Resource Library on Polly and Error Handling
Create a valuable resource for yourself and others by gathering and organizing articles, tutorials, documentation, and other materials related to Polly and error handling.
Browse courses on Polly
Show steps
  • Identify and collect relevant resources from various sources.
  • Organize the resources into a logical structure.
  • Share your resource library with the community.

Career center

Learners who complete Better User Experiences and More Robust Applications with Polly 2 will develop knowledge and skills that may be useful to these careers:
Site Reliability Engineer
As a Site Reliability Engineer, you will be responsible for ensuring the reliability and performance of software systems. This course will help you build a foundation in the principles of site reliability engineering, such as capacity planning, performance monitoring, and incident management. You will also learn how to use tools and techniques to automate tasks and improve efficiency.
Reliability Engineer
As a Reliability Engineer, you will be responsible for improving the reliability of software systems. This course will help you build a foundation in the principles of reliability engineering, such as fault tolerance, redundancy, and recovery. You will also learn how to use tools and techniques to measure reliability and identify areas for improvement.
Performance Engineer
As a Performance Engineer, you will be responsible for improving the performance of software systems. This course will help you build a foundation in the principles of performance engineering, such as performance analysis, performance tuning, and capacity planning. You will also learn how to use tools and techniques to measure performance and identify areas for improvement.
Software Engineer
As a Software Engineer, you will be responsible for designing, developing, and maintaining software systems. This course will help you build a foundation in the principles of software engineering, such as object-oriented design, testing, and refactoring. You will also learn how to use tools and techniques to improve code quality and efficiency.
Test Engineer
As a Test Engineer, you will be responsible for testing software systems to ensure that they meet requirements. This course will help you build a foundation in the principles of software testing, such as test planning, test execution, and test reporting. You will also learn how to use tools and techniques to automate testing and improve efficiency.
DevOps Engineer
As a DevOps Engineer, you will be responsible for bridging the gap between development and operations teams. This course will help you build a foundation in the principles of DevOps, such as continuous integration, continuous delivery, and infrastructure automation. You will also learn how to use tools and techniques to automate tasks and improve efficiency.
Quality Assurance Manager
As a Quality Assurance Manager, you will be responsible for ensuring the quality of software systems. This course will help you build a foundation in the principles of quality assurance, such as quality planning, quality control, and quality improvement. You will also learn how to use tools and techniques to automate testing and improve efficiency.
Project Manager
As a Project Manager, you will be responsible for planning, executing, and controlling software development projects. This course will help you build a foundation in the principles of project management, such as project planning, risk management, and stakeholder management. You will also learn how to use tools and techniques to track progress and manage resources.
Business Analyst
As a Business Analyst, you will be responsible for understanding the business needs of software systems. This course will help you build a foundation in the principles of business analysis, such as requirements gathering, process modeling, and data analysis. You will also learn how to use tools and techniques to gather feedback from stakeholders and improve the requirements.
Product Manager
As a Product Manager, you will be responsible for defining the vision and roadmap for software products. This course will help you build a foundation in the principles of product management, such as market research, competitive analysis, and product planning. You will also learn how to use tools and techniques to gather feedback from users and improve the product.
Software Architect
As a Software Architect, you will be responsible for designing and developing software systems. This course may be useful for you if you are interested in learning how to use design patterns and architectural principles to improve the reliability and performance of software systems.
Cloud Architect
As a Cloud Architect, you will be responsible for designing and deploying cloud-based software systems. This course may be useful for you if you are interested in learning how to use cloud computing to improve the reliability and performance of software systems.
Database Administrator
As a Database Administrator, you will be responsible for managing and maintaining database systems. This course may be useful for you if you are interested in learning how to use database technologies to improve the reliability and performance of software systems.
Machine Learning Engineer
As a Machine Learning Engineer, you will be responsible for developing and deploying machine learning models. This course may be useful for you if you are interested in learning how to use machine learning to improve the reliability and performance of software systems.
Data Scientist
As a Data Scientist, you will be responsible for using data to solve business problems. This course may be useful for you if you are interested in learning how to use data to improve the reliability and performance of software systems.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Better User Experiences and More Robust Applications with Polly 2.
A widely popular and well-received book that explains principles of designing data-intensive systems. Resilience critical part of these systems to avoid data loss and maintain integrity. should be used as a supplemental reference material for students taking the course.
Microservices are a popular application architecture style. provides a great overview of microservices including concepts related to fault tolerance, resilience, and retry patterns to help with persistence or database communication. This book would be a good supplemental read for the course.
Is written by experienced Site Reliability Engineers at Google and provides a wealth of practical knowledge. Students interested in learning more about SRE practices and resilience in software systems can read this as a supplemental resource to the course.
Introduces the fundamental principles of fault tolerance in distributed systems and covers a range of techniques and algorithms. Readers will gain a deep understanding of the challenges and approaches to ensuring fault tolerance in distributed applications.
Focuses on optimizing the performance of web applications and covers topics such as network optimization, HTTP caching, and reducing latency. While it's not directly related to the specific topic of retry policies, it provides valuable insights into performance considerations that may be relevant for students building resilient web applications.
Dives into the world of cloud-native development using Java and Spring Boot. It covers topics like microservices, containerization, and Kubernetes, which are essential for building scalable and resilient applications in the cloud. It aligns well with the course's focus on resilience and provides practical guidance for implementing these concepts.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Better User Experiences and More Robust Applications with Polly 2.
Fault Tolerant Web Service Requests with Polly
Most relevant
Microservices Observability, Resilience, Monitoring on...
Most relevant
Debugging and Error Handling in ASP.NET Core Web API
ASP.NET Core 1 MVC Testing Fundamentals
Building a Voice-enabled Serverless Website with AWS Polly
Debugging in ASP.NET Core 6 Blazor
Transient-Execution Attacks: Understanding Meltdown and...
IDisposable Best Practices for C# Developers
Date and Time in .NET
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser