SAService Architect Back to designer
SAService ArchitectDocumentation
Python DSL reference Project(name, module_version, repo_path)

Project API

The root registry and entry point for every topology entity and output operation.

When to use

Create exactly one Project before declaring objects that belong to the topology.

Behavior

  • Factory methods derive stable symbolic keys from names and reject duplicate declarations.
  • Object references replace YAML string references while authoring.
  • to_document() creates the symbolic in-memory document; to_yaml() serializes it.

Construction properties

Root identity serialized under settings.

PropertyTypeDescription
namestring

Human-readable project name.

module_versionstring

Framework module/runtime version.

repo_pathstring

Generated repository/module identity.

propertiesmapping

Additional supported project settings.

Entity factories properties

Factories register and return typed objects.

PropertyTypeDescription
module(), pool(), service()factory

Create top-level modules, task pools, and services.

int_type(), string_type(), struct_type(), ...typed factory

Create concrete type definitions without a free-form type discriminator.

http_connector(), grpc_connector(), kafka_connector()typed factory

Create transport-specific connectors.

cron_connector(), temporal_connector(), custom_connector()typed factory

Create scheduling and custom connectors.

Output methods properties

Operations performed after composition.

PropertyTypeDescription
validate()list[Diagnostic]

Return ServiceGen-compatible diagnostics.

to_document()dict

Return symbolic Service Architect data.

to_yaml()string

Return the stable YAML representation.

generate_code()GeneratedProjectArchive

Request a generated ZIP through the designer API.

Python example

project = Project("Orders", module_version="v1.0.0", repo_path="github.com/example/orders")
workers = project.pool("Workers", executors_count=8)
service = project.service(
    "Order Service",
    programming_language=ProgrammingLanguage.GO,
    module_path="github.com/example/orders/orderservice",
)