SAService Architect Back to designer
SAService ArchitectDocumentation
Python API reference project.pool() | project.service() | service.pipeline()

Pool, Service, and Pipeline

Execution capacity, deployment boundary, and stream namespace objects.

When to use

Create pools and services at project scope, then create streams through a named Pipeline.

Behavior

  • Pool controls executors and optional queue capacity for task-pool links.
  • Service receives typed language, module, listener, observability, and deployment objects.
  • Pipeline is a named stream registry inside one Service and exposes concrete stream factories.

project.pool() properties

Task pool factory.

PropertyTypeDescription
namestr

Pool name and derived key.

Required
executors_countint

Number of concurrent executors.

Required
queue_capacityint | None

Optional bounded queue capacity.

Default: None

project.service() properties

Service factory and common generated defaults.

PropertyTypeDescription
namestr

Service name and directory identity.

Required
languageGolang | CppUserver | CppBoost | Python | Rust | TypeScript

Target runtime and supported version metadata.

Required
moduleServiceModule

Generated package/module identity.

Required
appearanceAppearance | None

Optional service color.

Default: None
http_serverHttpServer | None

HTTP host and port group.

Default: None
grpc_serverGrpcServer | None

gRPC host, port, and default timeout group.

Default: None
observabilityObservability | None

Metrics, status, startup, readiness, and liveness handlers.

Default: None
kubernetesKubernetes | None

Generated Kubernetes workload configuration.

Default: None
default_call_semanticsCallSemantics

Semantics used when a persisted link override is absent.

Default: FunctionCall
shutdown_timeoutint

Total service shutdown timeout in milliseconds.

Default: 30000

service.pipeline(name) properties

Named stream namespace.

PropertyTypeDescription
namestr

Pipeline name and key.

Required
streamsdict[str, Stream]

Streams registered by concrete factory methods.

Python example

workers = project.pool("Workers", executors_count=8, queue_capacity=1000)
service = project.service(
    "Order Service",
    language=Golang(version="1.25.4"),
    module=ServiceModule(path="github.com/example/orders/orderservice"),
    appearance=Appearance(color="#ff5c00"),
    http_server=HttpServer(port=9091),
    grpc_server=GrpcServer(port=9201, default_timeout=30_000),
    observability=Observability(metrics_handler="metrics", status_handler="status"),
    kubernetes=Kubernetes(workload_type=KubernetesWorkloadType.DEPLOYMENT),
    shutdown_timeout=45_000,
)
orders = service.pipeline("orders")