SAService Architect Back to designer
SAService ArchitectDocumentation
Code generation Graph + settings -> runnable workspace

What is generated

ServiceGen converts the architecture graph into a complete multi-service workspace, not only function stubs.

When to use

Use this reference when generating, reviewing or operating a Service Architect project.

Behavior

  • The graph determines services, language backends, stream wiring, links, data contracts, connectors, endpoints, ports, probes and deployment shape.
  • Each service is generated as an independently buildable project with runtime wiring and explicit business extension points.
  • Shared data types, public functions and transport schemas are emitted into the user-defined Modules referenced by those graph objects.
  • The root workspace supplies one command surface for building, testing, running, publishing and deploying every component.
  • Only the selected graph features are materialized: Kafka, Temporal, HTTP, gRPC, observability and Kubernetes assets follow topology and settings.

Generator inputs

ServiceGen consumes the project settings and typed topology produced by Service Architect. Code generation itself does not perform network requests; framework and tool versions come from the generator dependency manifest.

  • Project and repository settings
  • Services and target programming languages
  • Pipelines, streams and links
  • Data types and schema formats
  • Connectors and endpoints
  • Runtime pools, modules and deployment settings

Generated output layers

The output is intentionally layered so architecture-owned code, generated infrastructure and user-owned business logic remain distinguishable.

  • Project orchestration repository
  • Independent service repositories
  • User-defined Module repositories for shared types, functions and connector schemas
  • Language-specific runtime and transport code
  • Configuration, graph snapshots and service documentation
  • Docker, Compose, CI, Grafana and Kubernetes assets

Mixed-language workspaces

Language is selected per service, so a project can contain more than one backend. Temporal generation is available for Go, Python and TypeScript; Cron generation is available for every current target runtime. Root Make targets compose all selected language backends behind the same product-level commands.

Generation flow

Service Architect graph
  -> servicegen archive
  -> merge.generated.sh
  -> service and contract projects
  -> make build / make docker-up / make kubernetes-up