SAService Architect Back to designer
SAService ArchitectDocumentation
Codex integration guide

Service and connector boundaries

Keep stream edges inside a service and represent every cross-service flow through a connector endpoint.

When to use

Apply these invariants whenever a scenario spans services, APIs, topics, databases, Cron, or Temporal.

Behavior

  • A stream-to-stream edge or Link connects streams belonging to one service only.
  • A producing service crosses its boundary through a Sink stream; a consuming service enters through an Input stream.
  • Both sides refer to the connector endpoint that represents the real transport destination or operation.
  • Reuse one connector for the same external system and one endpoint for the same logical destination or operation.

Correct cross-service path

Trace every cross-service value through the explicit integration boundary. This keeps ownership, generated adapters, and public contracts visible.

  • producer stream -> Sink -> connector endpoint -> Input -> consumer stream
  • If two endpoint declarations describe the same operation, consolidate them before adding streams.
  • If a direct cross-service edge appears necessary, stop and introduce or reuse the correct connector endpoint.

Example

Order Service / Map Order -> Sink(Order Events topic)
Order Events / orders.processed endpoint
Analytics Service / Input(Order Events topic) -> Count Orders