SAService Architect Open designer
SAService ArchitectDocumentation
Practical guide Design → generate → implement → run

Design and Generate Your First Microservice

Use the visual microservice designer to connect an HTTP endpoint to typed business logic, generate a native project and run it locally.

Start from the order-processing graph

Open the example in the designer. It shows service boundaries, typed streams and a request that calls Inventory over gRPC. Inspect this graph before building a smaller project with your own names and contracts.

Start with architecture and business logic to choose what belongs on the graph. Model the business stages you want to manage, not every detail of their implementation.

Choose a service target: Go, C++, Python, Rust or TypeScript. C++ has separate userver and Coro implementations. Coro uses Boost.Asio internally; it is not the retired C++/Boost runtime. A Python architecture model can generate any supported target; it does not require Python services.

Connect HTTP input to a typed pipeline

Declare the request and result types, configure an HTTP connector and source endpoint, and bind an Input stream to that endpoint. Add a Map for one-to-one transformation or Process for a meaningful stateful or side-effecting business step. Add an Error path only when failure needs explicit graph handling.

Use Build Mode to connect compatible streams. Returning a pipeline result through the original HTTP request is part of the source endpoint handler contract. A Sink means an outbound operation; adding an HTTP Sink does not automatically write the inbound response.

Check node validation and the full project contract before generating code. The HTTP endpoint reference explains the transport properties.

Generate the project and implement business logic

Save the project and choose Generate project in the application-bar project menu to submit generation and download its ZIP. The generation progress dialog distinguishes queueing from active work and shows the job ID. Extract it into a working directory and read its README and service-specific README.

The archive supplies graph wiring, contracts and business extension points. Implement the generated function and endpoint interfaces in user-owned files. A newly generated function stub is not an implementation of your business process. For a complete runnable application, use one of the example repositories linked from the language project pages.

Build and run with Docker Compose

Install Git, GNU Make, Docker with Compose v2 and the host tools required by the generated README. Run from the extracted workspace root. make init can invoke language tooling on the host.

make help
make init
make build
make test
make docker-up
  • Read the generated configuration for the HTTP address and route, then send a request matching the declared schema.
  • Inspect the response, service metrics and trace rather than treating a successful container start as proof of business behavior.
  • Use make docker-down when finished; it preserves the development volumes.

Next steps

Open example → inspect endpoint and types → generate ZIP → implement business functions → run → send a request