Software Development, Technology and Innovation

Introducing Palmer (a Retry logic library for .NET)

Over the last week I’ve been slowly writing a little utility library to make it easier to express retry logic within application code. As software becomes more complex and more interconnected the concept of gracefully recovering from transient conditions becomes more important. Your average cloud or enterprise application is going to have to deal with network time outs, database deadlocks and temporary glitches caused by underlying systems recovering from hardware failures.

Palmer is a library that I’ve created to help solve this problem. You can read more about it over at GitHub. If you just want to download it and have a play, you can install the package from NuGet.

Can I ask another favour, could you take a stab (in the comments of that issue) in writing what would make it easier to figure out how many times it is going to execute? I must admit I struggle with this one myself.

Interesting idea. Certainly will be very useful to commercial if a solid retry framework is available. For failed retries at work I constantly encounter the need to deal the followings:

1. Minimum waiting time between retries.
2. Every retry action may take a different set of arguments / data. E.g. 100 web service calls made, 50 needs retry after 1st run, 20 needs retry after 2nd run etc.
3. Feeling that it would be nice if retries can be specified via AOP as attributes of service methods.