A typical problem happening in a running ESB is that an error happened because of a temporary problem, and then the administrators would need to either replay a message so that it can be successfuly processed.
Another case is with Faults:
- theoretically, a service calling another service must be able to manage all the Faults the provided could create.
- in practice it is not always the case, or simply it is not desired to bring the Fault back to the original caller (for example, if new customers of an application are made visible every night to one of the providers and then another service refer to this customer in a message, then a Fault of the kind "UnknownCustomer" would be returned, but we don't want the original user to redo the whole process just because one night should be waited).
- so there should be some mean to trap Faults and the message be replayed later.
One idea would be to introduce an extra mechanism in the CDK for the component to "declares" they have a message with a Fault or a an Error or with a Timeout, or else, and that they don't know what to do with it.
This information would be, in a way or another, be made visible to the administrator (for example Petals Cockpit) so that he can introspect them and replay them.