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.
What the declaration contains
Section titled “What the declaration contains”| 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.
What the declaration leaves out
Section titled “What the declaration leaves out”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.
Why it is code
Section titled “Why it is code”- 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.