Skip to content
Concept

Systems and topology

Read this when a tutorial reaches intropy sys create, Topics.cs, Ports.cs, or the C# system definition.

A topology is the declared shape of one System: which Components exist, which Resources join them, and which Ports and Services sit at the edges.

The declaration lives in the system host, a small .NET project generated by intropy sys create. The host is also what runs the System locally.

File Contains
Topics.cs Topic names and the contract each Topic carries.
Ports.cs Port names. A Port is only a name.
Services.cs Platform services the Components call.
<Name>System.cs One builder call per Component.
<Name>Development.cs Local stand-ins: folders for Ports, mocks for Services.

The important file is the system definition:

builder.AddExtractor("order-extractor")
.From(Ports.OrderExtractorSource)
.Publishes(Topics.Orders)
.Uses(Services.Idempotency);
builder.AddLoader("order-loader")
.Subscribes(Topics.Orders)
.To(Ports.OrderLoaderDestination)
.Uses(Services.Idempotency);

Every line is a box or arrow in the System.

The topology does not contain adapter type, address, credentials, schedules, namespaces, or brokers. Those are environment-owned settings.

That split is why the same Component can run against:

  • a local folder during the tutorial,
  • an SFTP binding in a local cluster,
  • a production endpoint in a GitOps environment.

The Component still knows only the Port name.

  • Illegal edges do not compile. A loader cannot publish to a Topic.
  • Unused infrastructure does not enter the model. A Topic exists because something publishes to it.
  • The same declaration backs local run, validation, generated deployment model, and runtime manifests.

For generated file details and host verbs, use The system host.