home.social

#transactionaloutbox — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #transactionaloutbox, aggregated by home.social.

  1. Возможно, Transactional Outbox не так уж и прост?

    Я написал transactional outbox для двух своих коммерческих проектов. Подходящих готовых решений на момент написания не было, а CDC на основе лога с Debezium показался слишком тяжёлым для простого требования: сохранить событие вместе с данными и отправить его позже. Само требование появляется потому, что сервис, который меняет базу и затем публикует сообщение, пишет в две системы, а транзакция базы данных покрывает только одну из них. Если процесс умирает между коммитом и публикацией, данные изменились, а никто об этом не узнал. Поменяйте порядок местами - и сообщение уйдёт об изменении, которого не случилось. Паттерн outbox закрывает эту дыру тем, что делает событие частью транзакции. Вместо того чтобы публиковать прямо в брокер, сервис записывает событие в таблицу рядом с бизнесданными, а доставляет его отдельный шаг, позже.

    habr.com/ru/articles/1107804/

    #java #architecture #spring_boot #springboot #springbootstarter #transactional_outbox #java_spring_boot #spring_boot_starter #transactionaloutbox

Share on Mastodon

Enter the server where you have an account.