class BackoffRetryManager implements RetryManager {

	public boolean hasExpired (Notification notification) {
						
		// Has time to live elapsed?
		if (Instant.now().isAfter(notification.getExpirationTime())) {
			return true;
		}
		
		// Has number of retries exceeded limit?
		if (notification.getDeliveryAttempts() > maxAllowableRetriesForNotification(notification)) {
			return true;
		}
		
		return false;		
	}

}