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:
- Receive port: brings a message in and publishes it to the bus.
- Send port: subscribes to messages on the bus and delivers them out.
- Loopback port: puts a message back on the bus under a new message type, for multi-step flows.
- Null port: catches a message and intentionally discards it.
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.
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
- A receive port accepts a message, validates it, maps it to canonical.
- The message lands on the bus with a message type, promoted values, and a Tracking ID that follows it everywhere.
- Every send port whose subscription matches picks it up.
- Each one maps it to the destination format and delivers.
- 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.