Сервисы взаимодействуют либо синхронно (запрос/ответ через REST или gRPC), либо асинхронно (сообщения/события через брокер, такой как Kafka или RabbitMQ).
Синхронное взаимодействие (запрос/ответ)
Вызывающая сторона ждёт ответа. Просто и понятно, но создаёт связь по доступности — если вызываемый сервис недоступен, вызывающая сторона затронута.
GET /orders/42 HTTP/1.1
Host: orders-service
Accept: application/json
Асинхронное взаимодействие (сообщения/события)
Отправитель публикует сообщение и переходит к следующему; потребители обрабатывают его позже. Это разделяет сервисы по времени.
