Skip to content
Tutorial1/4

1. Scaffold the components

In this chapter you scaffold the two Components the first pass needs: the extractor that sweeps the ERP and the loader that delivers to the WMS.

From the scratch directory root:

Terminal window
intropy int create extractor -n ErpExtractor -o erp-extractor --template-version v0.4.1 \
-s organization=Fluxia -s topic=order-notifications -s contract=Order -s empty=false
intropy int create loader -n WmsLoader -o wms-loader --template-version v0.4.1 \
-s organization=Fluxia -s topic=order-notifications -s contract=Order -s empty=false
fetching integrio-intropy/intropy-templates@v0.4.1
created erp-extractor from integrio-intropy/intropy-templates@v0.4.1 (template extractor)
created dependency Contracts from template shared-contracts
fetching integrio-intropy/intropy-templates@v0.4.1
created wms-loader from integrio-intropy/intropy-templates@v0.4.1 (template loader)
dependency Contracts already scaffolded from shared-contracts — skipped

Use your own organization in place of Fluxia; it becomes the telemetry ServiceNamespace and the source URN on every business incident. empty=false keeps the sample business logic in the pipeline steps, so both Components can process an order without you writing code — this tutorial is about the System, not the pipeline.

Two of the -s pairs are the system contract, and they must be spelled identically in both commands:

  • topic=order-notifications — the Topic the extractor publishes to and the loader subscribes to
  • contract=Order — the shared record the Topic carries

The first scaffold also created Contracts/, the class library holding the Order record; the second command found it and left it alone. Both Components reference the same project, so a change to the contract is a compile error in every Component that disagrees, not a runtime surprise.

Each project carries .intropy/scaffold.json: the template, the release it was rendered from, and the resolved values, including the topic and contract above. These records are the input to the next chapter — intropy sys create reads them to assemble the System — so commit them with the code.

Terminal window
intropy int list
PATH TEMPLATE VERSION
Contracts shared-contracts v0.4.1
erp-extractor extractor v0.4.1
wms-loader loader v0.4.1

The workspace holds two Components and the shared contracts project, all rendered from the same release.