Синхронная: HTTP/gRPC вызовы, ожидание ответа. Простота, но связность и каскадные сбои. Асинхронная: очереди (Kafka, RabbitMQ), события; слабая связность, буферизация. В Go синхронно - http.Client или gRPC client; асинхронно - продюсер/консьюмер Kafka или AMQP. Для надежности и снятия пиков часто комбинируют: команды по HTTP, события по очереди.
resp, err := httpClient.Post(ctx, "http://orders/create", "application/json", body)
// или
producer.Produce(ctx, &kafka.Message{TopicPartition: tp, Value: payload})