При создании микросервисной архитектуры мы полагаемся не только на транзакции в базах данных, но и на бизнес-транзакции. Набор операций выполняется в разных сервисах и при этом обладает такими же свойствами ACID, как и транзакции БД. Реализация бизнес-транзакций часто осложняется, ведь для этого нужно: определять из множества способов реализации верный; уметь правильно выбирать инструменты и паттерны; знать особенности работы инструментов. Моя команда также столкнулась с этими сложностями. Мы выявили интересный дефект и узнали кое-что новое про аннотации JPA, такие как @PostPersist, и их соотношение с транзакционностью. В своём докладе я проведу вас по пути от ошибки до обзора некоторых способов её устранения и выбора итоговой реализации. Всё это — в условиях системы, построенной на микросервисах и имеющей определенные требования к бизнес-транзакциям.
Hide player controls
Hide resume playing