Skip to content
Art2link ESB v2.02 LTS HomeDocumentationBlogContact
Best practices/Components transform, ports deliver

Components transform, ports deliver

A pipeline component exists to shape and publish messages. The moment it makes the delivering call — the insert, the POST, the file write that completes the integration — it has stepped into the send port’s job and undone the bus.

This is normalize onto the bus stated as a boundary on the component itself. A component runs inside the receive context, so a delivering call inside it holds the inbound transaction open while it waits on a slow endpoint, blocks throughput, and can let a downstream failure poison the receive. It also welds the feed to one destination and hides the work from tracking.

The component’s contract is narrow on purpose: parse, validate, enrich, normalize, publish. Stop there. Whatever needs to happen to the outside world is expressed as a published canonical message and a send port that subscribes — which is also what makes the flow observable, resilient and replayable.

pipeline component transform& publish deliver call forbidden publish BUS Send portowns delivery DB / API
The line. A component may read reference data to enrich a message; it may not perform the delivery that finishes the integration. If it is calling the system of record to commit a result, move that to a send port.