Skip to content
TutorialIntroduction

Tutorial: Build a transactional integration

Build one transactional integration from empty send steps to a running System.

A Transactional Integration is one Component that moves messages from one source to one destination through its own internal queue. Its receive side sweeps the source, publishes each file to the queue, and deletes the file once it is on the queue; its send pipeline delivers the message from the queue to the destination. Conceptually it is similar to a BizTalk receive port, MessageBox, and send port in one deployable unit.

The framework owns the receive side. You scaffold the Component, implement the send pipeline, run the tests, create the host, and add idempotency and business incidents.

This tutorial is written for intropy CLI 2.1.1 and intropy-templates 2.0.0. A workspace scaffolded with CLI 1.x needs CLI 1.0.1 and --template-version v1.0.3; see Workspaces created before CLI 2.0.

A Transactional Integration that moves orders from a source folder to a destination folder through one Component.

Source systemlocally: a folderSYSTEM · ORDER-SYNCorder-synckind: transactionalpublishessubscribesPub/subkind: queueDestination systemlocally: a folder
FIG T1System view: source system → order-sync Component → destination system.

Inside the Component, the framework’s receive side feeds the internal queue and your send pipeline drains it:

Source folderorders in, one file eachport: order-sync-sourceORDER-SYNC · TRANSACTIONAL INTEGRATIONRECEIVE SIDE · FRAMEWORKSweepPublishDeletepublishesInternal queuetopic: internal-order-syncdeliversSEND PIPELINEDeserializeExtractValidateTransformSerializeSendport: order-sync-destinationDestination folderone JSON document per order
FIG T2Component view: framework receive side → internal queue → send pipeline.
Your code External touchpoint Infrastructure, not your code

The receive side is framework code. You write the send steps: deserialize, extract, validate, transform, serialize, send.

Each chapter ends with a command you can run.

  1. Scaffold the component — create the empty Component and inspect the failing tests
  2. The model and the Deserializer — define the message and context values
  3. Extract, validate, transform — implement the business steps
  4. Serialize, send, and run — finish the pipeline and run the host
  5. Idempotency and business incidents — wire deduplication and incident routing