Встречается на собеседованиях • сегодня
Что такое паттерн Outbox
Паттерн Outbox используется для обеспечения надежной доставки событий или сообщений в распределенных системах. Основная идея — сохранять события в той же транзакции, что и изменения данных, чтобы гарантировать их атомарность.
Пример с Spring и JPA:
java
@Entity
public class OutboxEvent {
@Id
private String id;
private String aggregateType;
private String aggregateId;
private String eventType;
private String payload;
private LocalDateTime createdAt;
}
@Service
@Transactional
public class OrderService {
@Autowired
private OrderRepository orderRepository;
@Autowired
private OutboxEventRepository outboxEventRepository;
text
public void createOrder(Order order) {
orderRepository.save(order);
OutboxEvent event = new OutboxEvent();
event.setId(UUID.randomUUID().toString());
event.setAggregateType("Order");
event.setAggregateId(order.getId());
event.setEventType("OrderCreated");
event.setPayload(toJson(order));
event.setCreatedAt(LocalDateTime.now());
outboxEventRepository.save(event);
}}
text
Отдельный процесс (например, Scheduled task) затем читает события из Outbox и публикует их в брокер сообщений (Kafka, RabbitMQ).
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы