Cerebrum City Art2link ESB/Certification/Module 2 Home Documentation Blog Contact
Art2link ESB Certification
Module 2 of 6 · ~5 minutes

The building blocks

Six concepts cover most of the platform. Here they are.

Application

The container everything lives in. Each Application owns its own private bus and its own artifacts (ports, pipelines, maps, and so on). Nothing is shared across Applications. If you come from BizTalk, this is the big boundary change: no shared MessageBox.

Port

Where systems plug in. A port binds an adapter, a pipeline, and maps together. Four kinds:

The Application's bus Receive port publishes in Loopback port back on the bus Send port delivers out Null port discards
Four kinds of port, one shared bus. Receive publishes in, Send delivers out, Loopback re-publishes, Null discards.

Message type

The label a message is routed by. A name, not a schema. That is refusal five from Module 1 in action: in BizTalk a schema was mandatory and defined the message type; here schemas are optional and exist only for validation, where you choose to apply it.

Pipeline and map

A pipeline is an ordered list of components a message passes through on its way in or out. A map is the transformation that runs inside it, converting formats. Maps live at the edges: inbound maps turn source formats into your canonical format, outbound maps turn canonical into whatever the destination wants. Maps can call custom functions for lookups and logic.

Maps come in two modes. A Typed map requires the source message type to match, like BizTalk. A Universal map runs on any message: it maps what matches and ignores the rest. Loose by default, tight by choice.

One more thing about pipeline components and custom functions: they are C# (NuGet packages allowed), yet you never compile or deploy them. Save, and they run.

Promotion and subscription

A promotion lifts a value out of the message body so routing can see it without opening the payload. A subscription is a send port's matching rule, evaluated against those promoted values. Every send port that matches gets the message.

The whole journey

  1. A receive port accepts a message, validates it, maps it to canonical.
  2. The message lands on the bus with a message type, promoted values, and a Tracking ID that follows it everywhere.
  3. Every send port whose subscription matches picks it up.
  4. Each one maps it to the destination format and delivers.
  5. If delivery fails after all retries (configurable on every send port), the message goes to Suspended status: resume it later or terminate it. Never silently dropped.

Check yourself

Three quick questions on this module, in the same style as the exam. Not graded, not recorded, just practice with instant explanations.

Go deeper

← Module 1: Why Art2link ESB Module 3: Connecting systems →