This is a good introduction to the subject. At the end you might want to mention rate limiting, truncation (giving up after a specified number of retries) and, for the most sophistication, circuit breakers.
If every developer just did what you advise and no more, I would consider it a big win. I saw at a previous employer exactly how much extra work and complexity we had to build into our operations just to deal with clients using dumb simple retry loops.