Kafka доставляет и хранит поток событий, а Postgres может быть источником текущего состояния, транзакций и запросов клиента. Эти роли не взаимоисключающие.
Зачем нужен Postgres, если вы отправляете события в Kafka? Как клиент получает результат?
Kafka доставляет и хранит поток событий, а Postgres может быть источником текущего состояния, транзакций и запросов клиента. Эти роли не взаимоисключающие.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Kafka доставляет и хранит поток событий, а Postgres может быть источником текущего состояния, транзакций и запросов клиента. Эти роли не взаимоисключающие.
Типовой flow: HTTP-запрос создаёт операцию и outbox в одной DB-транзакции, возвращает operation-id; worker обрабатывает событие и обновляет статус. Клиент читает результат через GET статуса, SSE/WebSocket или получает webhook по договорённости. Kafka offset не заменяет удобную бизнес-модель поиска заказа/платежа. Для короткой операции допустим синхронный ответ, но нельзя ждать бесконечно. Нужны идемпотентность, статус ошибки и понятный срок ожидания.