anchor.diff:  
   == How to Develop a Custom Notification Plugin
   
  -We provide a simple https://github.com/killbill/killbill-hello-world-java-plugin[_Hello World Plugin_] that can be used as the starting point to develop your custom notification plugin. 
  +We provide a simple https://github.com/killbill/killbill-hello-world-java-plugin[_Hello World Plugin_] that can be used as the starting point to develop your custom notification plugin.
   You can refer to our https://docs.killbill.io/latest/plugin_development.html#_development[__Plugin Development__] document in order to understand how to set it up.
   
  -The https://github.com/killbill/killbill-hello-world-java-plugin[Hello World Plugin] has a class `HelloWorldListener.java`.  You can create a class similar to this to write your plugin code. 
  +The https://github.com/killbill/killbill-hello-world-java-plugin[Hello World Plugin] has a class `HelloWorldListener.java`.  You can create a class similar to this to write your plugin code.
   Let us take a closer look at the `HelloWorldListener` class:
   
   [source,java,linenums]
  
positive.code: 
  It is expected that the plugin will simply pass the same retry schedule for each retry iteration, but this is not enforced and left for the plugin to decide. Kill Bill will look at the most recent retry schedule attached to the exception currently being handled and determine what to do based on that. If for instance a first schedule included 2 retries 10 days apart, and then upon retrying one time, the new schedule now includes only 1 retry, the cycle of retries would end there (as the latest schedule contains only one retry and Kill Bill already retried one time).
  Because of such behavior, any plugin can trigger retries at any time: it is hence important that your listener is idempotent.
  
  
  
  
negative.code: This specifies that Kill Bill should retry sending the event two times. The first should be an hour from now, while the second should be 24 hours from now.
  
  
  When the `NotificationPluginApiRetryException` is caught by Kill Bill, the system computes the next retry date based on the schedule specified in the exception and the number of times that specific event has been retried.
  
  So, in terms of responsibilities:
  
  