Skip to content
Art2link ESB v2.02 LTS HomeDocumentationBlogContact
Best practices/Compose, don’t orchestrate

Compose, don’t orchestrate

Build outcomes from small primitives that each publish their result to the bus, not from one big component that does the whole job inside itself. Every step you can see, track and replay is worth more than a clever step you cannot.

This is the principle behind one of Art2link’s defining choices: there are no orchestrations. A traditional orchestration is a closed box, expensive to build, awkward to debug, opaque while it runs, and hard to maintain once the person who wrote it moves on. The same is true at smaller scale of any component that swallows several steps into one body of code.

Opaque, one black box Composed, visible hops in orchestration ? out step 1 step 2 step 3 step 4 each hop = a tracked message on the bus

Composed the Art2link way, each step is a port, pipeline or map that publishes its result back to the bus. Every hop is a tracked, inspectable message with a natural resume point. When something breaks, you see exactly which step and replay from there. The multi-step coordination that orchestrations were sold for (processes, sagas, scatter-gather, waits) is rebuilt from these primitives in the Orchestration-replacement patterns, with none of the opacity.

When a component grows a second responsibility, that is the signal to split it, publish the intermediate result and let the next primitive subscribe. Cleverness you cannot observe is a liability, not an asset.