Встречается на собеседованиях • сегодня
Как бороться с неконсистентностью при сохранении информации только в половине сервисов
Используй паттерн Saga для управления распределёнными транзакциями. Разбей операцию на этапы, каждый с компенсирующим действием при ошибке.
Пример:
java
// Order Saga
public class OrderSaga {
void execute(Order order) {
try {
inventoryService.reserveItems(order); // Шаг 1
paymentService.charge(order); // Шаг 2
shippingService.schedule(order); // Шаг 3
} catch (Exception e) {
// Компенсация
paymentService.refund(order);
inventoryService.releaseItems(order);
throw e;
}
}
}Альтернативы:
- Event Sourcing + CQRS (восстановление состояния через события).
- 2PC (Two-Phase Commit) — но сложно в микросервисах.
Важно: Логируй все шаги для отладки неконсистентности.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы