Skip to content
Art2link ESB HomeDocumentationBlogContact
Updated May 5, 2026
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.