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

An HTTP, gRPC and Kafka Microservice Example

Follow an order from an HTTP source through parallel Inventory RPCs to a response and a Kafka event, with explicit service boundaries and typed correlation.

Separate service calls from stream links

Open the ProcessOrder graph and select Order, Inventory and Analytics. Stream links connect nodes inside a service. Cross-service communication is represented by matching outbound Sink and inbound Input endpoint contracts.

An HTTP request admits the order. Item processing fans out, Inventory receives gRPC calls, and results return to the Order pipeline. A Kafka producer and consumer form a separate event boundary; a broker acknowledgement and completion of downstream business processing are different observations.

Use the complete example implementation

The Go example includes the business functions needed to execute the scenario. Follow the repository README to initialize and start its complete stack, including Kafka infrastructure. Equivalent language projects are linked from the code generation reference.

Use the request schema and address in that checkout. The example response depends on Inventory data and quantities; do not assume that every valid order is confirmed.

git clone https://github.com/gorundebug/goexample.git
cd goexample
make help
make init
make docker-up

Correlate results and inspect the timeout branch

The graph can issue independent item work while a soft-deadline branch waits. Results are correlated by the declared message identity. The runtime and source handler must coordinate one response, late results and cancellation; an edge order on the canvas does not serialize independent tasks.

Read gRPC endpoint modes, keyed joins and parallel delivery before adapting this pattern.

Check the Kafka consumer as well as the HTTP response

After sending a request, inspect the response and the Analytics runtime graph or metrics. Check the Kafka consumer group and committed offset using the tools supplied by the environment. Producer success alone does not show that Analytics processed the event.

The cross-language conformance project checks observable scenarios and transport boundaries. Its documented coverage is the reference for what a particular test run demonstrates.

Next steps

HTTP request → typed item work → Inventory gRPC → correlated result
Kafka producer → broker → Analytics consumer