#outboxпаттерн — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #outboxпаттерн, aggregated by home.social.
-
[Перевод] Транзакционный паттерн Outbox: теперь с «оптимистичной отправкой»
Transactional outbox обычно внедряют ради консистентности, а в итоге получают новый источник «случайной» задержки и постоянный фон нагрузки на базу из-за поллинга. В этой короткой статье разберем простой поворот идеи: не выбрасывая outbox и relay-процесс, попробовать отправлять событие сразу после коммита и превращать поллинг в редкий fallback. Посмотрим, что это даёт по задержкам и нагрузке, и какие неприятные нюансы всплывают с порядком доставки, дублями и наблюдаемостью. Открыть разбор
https://habr.com/ru/companies/otus/articles/995476/
#транзакционный_outbox #outboxпаттерн #доставка_событий #публикация_событий #согласованность_данных #идемпотентность
-
Паттерн Transactional Outbox на примере двух микросервисов на java
Всем привет! В данной статье будет описан один из возможных вариантов реализации паттерна outbox transactional. План данной статьи такой. Вначале немного теории, а потом на примере двух микросервисов будет показала реализация данного паттерна с помощью debezium и kafka. Данная статья будет полезна для новичков, которые не встречались с данным паттерном. Весь код микросервисов будет доступен по ссылкам. Но вначале немного теории. Самый главный вопрос зачем нужен данный паттерн и какую он решает задачу. Паттерн Outbox – используется в распределенных транзакциях, то есть в транзакциях, которые проходят и затрагивают несколько микровервисов, для обеспечения гарантированной доставки сообщения от одного микросервиса до другого. Данный паттерн используется там, где очень критично чтобы сообщение не потерялось, даже при сбоях в системе. Outbox паттерн получил распространение именно в микросервисной архитектуре, где нет возможности с помощью одной аннотации обеспечить транзакционность какого-то метода и возможный откат всей транзакции в рамках нескольких микросервисов. Теперь перейдем к практике. Допустим у нас имеется два микросервиса: order-servic, в котором клиент заказывает какой-то товар и bank-service, в котором происходит оплата за этот товар. Весь код микросервисов будет доступен по ссылкам. Задача в том, чтобы при заказе товара обязательно произошло списание денег за него или если денег недостаточно или возникла ошибка на стороне банка микросервис по заказам узнал об этом. Для реализации этого паттерна я буду использовать debezium и kafka.
https://habr.com/ru/articles/991934/
#java #паттерны_проектирования #outbox #outboxпаттерн #transactional_outbox #kafkaconnect #debezium
-
[Перевод] Паттерн Outbox для надежного обмена сообщениями в микросервисах
Работа с микросервисами достаточно сложная, как и с любой распределенной системой. Уменьшение количества возможных точек отказа должно быть одной из целей инженера, который проектирует распределенную систему. В этой статье мы постараемся достичь именно этого, используя паттерн Outbox.
https://habr.com/ru/articles/969512/
#net #net_core #csharp #csharpnet #c# #patterns #pattern #outbox #outboxпаттерн
-
[Перевод] Паттерн Outbox для надежного обмена сообщениями в микросервисах
Работа с микросервисами достаточно сложная, как и с любой распределенной системой. Уменьшение количества возможных точек отказа должно быть одной из целей инженера, который проектирует распределенную систему. В этой статье мы постараемся достичь именно этого, используя паттерн Outbox.
https://habr.com/ru/articles/969512/
#net #net_core #csharp #csharpnet #c# #patterns #pattern #outbox #outboxпаттерн
-
[Перевод] Паттерн Outbox для надежного обмена сообщениями в микросервисах
Работа с микросервисами достаточно сложная, как и с любой распределенной системой. Уменьшение количества возможных точек отказа должно быть одной из целей инженера, который проектирует распределенную систему. В этой статье мы постараемся достичь именно этого, используя паттерн Outbox.
https://habr.com/ru/articles/969512/
#net #net_core #csharp #csharpnet #c# #patterns #pattern #outbox #outboxпаттерн
-
[Перевод] Паттерн Outbox для надежного обмена сообщениями в микросервисах
Работа с микросервисами достаточно сложная, как и с любой распределенной системой. Уменьшение количества возможных точек отказа должно быть одной из целей инженера, который проектирует распределенную систему. В этой статье мы постараемся достичь именно этого, используя паттерн Outbox.
https://habr.com/ru/articles/969512/
#net #net_core #csharp #csharpnet #c# #patterns #pattern #outbox #outboxпаттерн