SAService Architect Back to designer
SAService ArchitectDocumentation
Framework reference std::unique_ptr<Name> MakeName(servicelib::Context, servicelib::IServiceEnvironment&, const servicelib::config::<Config>&)

Extension model

C++ Boost services use `cppboostservicelib`. Generated graph assembly owns runtime wiring; application code supplies typed business implementations through preserved maker functions.

When to use

Use this page while implementing a generated business function or endpoint handler.

Behavior

  • The runtime is C++20 on Boost.Asio, Beast, Boost.JSON, gRPC, and librdkafka adapters.
  • The generated Boost service binds the same user-owned callable and maker pattern as the userver backend, but transport values come from Boost-oriented adapters.
  • The generated maker signature identifies the exact implementation and typed configuration required by the selected stream or endpoint.
  • Returning a construction error stops service startup instead of leaving a partially wired graph.

Regeneration contract

Function and endpoint implementation files are preserved by the merge script. Generated registries and graph assembly may change around them; make merge-validate detects a preserved maker whose generated signature is no longer compatible.

Choosing where state lives

Keep reusable clients and immutable dependencies on the implementation object. Keep request, record, RPC, or workflow invocation data in handler state. Use the runtime context for cancellation and correlation instead of inventing a parallel context channel.

Generated and user-owned boundaries

How generated services discover and run application code.

Type or methodRoleDescription
Generated graph assemblyFramework owned

Creates streams, links, connectors, endpoint consumers, serializers, stores, and runtime pools from the designer graph.

Maker functionUser entry point

std::unique_ptr<Name> MakeName(servicelib::Context, servicelib::IServiceEnvironment&, const servicelib::config::<Config>&)

Implementation objectUser owned

Contains business dependencies and reusable state for one generated function or endpoint.

Typed configGenerated contract

Matches the selected graph node and exposes its runtime configuration to the maker.

Service environmentFramework dependency

Provides configured observability and runtime services without requiring global variables.

Generated extension pattern

inline std::unique_ptr<ValidateOrder> MakeValidateOrder(
    servicelib::Context context,
    servicelib::IServiceEnvironment& environment,
    const servicelib::config::ProcessStreamConfig& config);