Skip to content
Art2link ESB v2.02 LTS HomeDocumentationBlogContact
Best practices/Fail loud, never drop

Fail loud, never drop

A message that fails should never simply vanish. Whatever the failure — unroutable, undeliverable, malformed — it lands somewhere you can see it and replay it. The only truly unrecoverable outcome is the one you never find out about.

Drops are insidious because they look like success. A try/catch that logs and returns, a filter that quietly discards non-matches, an empty result treated as “nothing to do” — each removes a message from existence with no record. Weeks later a partner asks where their order went and there is nothing to investigate.

Art2link gives every failure a destination instead. A message that matches no subscription, exhausts its retries, or is rejected as a poison message is routed to a dead-letter channel — persisted, visible in tracking, and available for replay once the cause is fixed. Loud failure is recoverable; silent failure is not.

silent drop — wrong dead-letter — right failed message gone, no trace failed message dead-letterinspect & replay
Watch the quiet paths. The dangerous drops are the ones that never raise an error: a router with no default branch, a filter with no “else,” a catch block with no re-throw. Give every one of them a dead-letter exit.