home.social

#outbox — Public Fediverse posts

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

fetched live
  1. Почему отправленная MDM-команда ещё не означает выполненную

    MDM-команда проходит через очередь, инфраструктуру Apple или Google и агент на устройстве. Поэтому ответ API ещё ничего не говорит о фактическом применении политики. Разбираю модель доставки, которую мы используем в Айтера MDM: desired, delivery и observed state, Outbox, ретраи, идемпотентность и разные транспортные контуры Android Enterprise и Apple MDM.

    habr.com/ru/articles/1066224/

    #MDM #Android_Enterprise #iOS #APNs #Android_Management_API #Outbox #eventual_consistency #управление_устройствами

  2. Почему отправленная MDM-команда ещё не означает выполненную

    MDM-команда проходит через очередь, инфраструктуру Apple или Google и агент на устройстве. Поэтому ответ API ещё ничего не говорит о фактическом применении политики. Разбираю модель доставки, которую мы используем в Айтера MDM: desired, delivery и observed state, Outbox, ретраи, идемпотентность и разные транспортные контуры Android Enterprise и Apple MDM.

    habr.com/ru/articles/1066224/

    #MDM #Android_Enterprise #iOS #APNs #Android_Management_API #Outbox #eventual_consistency #управление_устройствами

  3. Почему отправленная MDM-команда ещё не означает выполненную

    MDM-команда проходит через очередь, инфраструктуру Apple или Google и агент на устройстве. Поэтому ответ API ещё ничего не говорит о фактическом применении политики. Разбираю модель доставки, которую мы используем в Айтера MDM: desired, delivery и observed state, Outbox, ретраи, идемпотентность и разные транспортные контуры Android Enterprise и Apple MDM.

    habr.com/ru/articles/1066224/

    #MDM #Android_Enterprise #iOS #APNs #Android_Management_API #Outbox #eventual_consistency #управление_устройствами

  4. Как мы четыре раза переписали Outbox

    Привет! Я Ильдус Тукаев, разработчик в команде образовательной платформы Т-Банка. Мы помогаем школьникам, студентам, молодым специалистам и сотрудникам получать знания и качать свои софт и хард навыки. Основной язык у нас Go, но сегодня расскажу больше про архитектурную тему: как у нас в команде использовался паттерн Outbox и как он эволюционировал. За полтора года реализация Outbox прошла четыре итерации. По пути мы ловили VACUUM, который останавливал сервис на три часа, теряли 5% событий за полтора дня и заваливали поддержку обращениями. Расскажу, какие реализации мы пробовали, на какие грабли наступали и почему остановились на варианте, который сами же не считаем идеальным.

    habr.com/ru/companies/tbank/ar

    #outbox #outboxпаттерн #outbox_pattern

  5. Как мы четыре раза переписали Outbox

    Привет! Я Ильдус Тукаев, разработчик в команде образовательной платформы Т-Банка. Мы помогаем школьникам, студентам, молодым специалистам и сотрудникам получать знания и качать свои софт и хард навыки. Основной язык у нас Go, но сегодня расскажу больше про архитектурную тему: как у нас в команде использовался паттерн Outbox и как он эволюционировал. За полтора года реализация Outbox прошла четыре итерации. По пути мы ловили VACUUM, который останавливал сервис на три часа, теряли 5% событий за полтора дня и заваливали поддержку обращениями. Расскажу, какие реализации мы пробовали, на какие грабли наступали и почему остановились на варианте, который сами же не считаем идеальным.

    habr.com/ru/companies/tbank/ar

    #outbox #outboxпаттерн #outbox_pattern

  6. Как мы четыре раза переписали Outbox

    Привет! Я Ильдус Тукаев, разработчик в команде образовательной платформы Т-Банка. Мы помогаем школьникам, студентам, молодым специалистам и сотрудникам получать знания и качать свои софт и хард навыки. Основной язык у нас Go, но сегодня расскажу больше про архитектурную тему: как у нас в команде использовался паттерн Outbox и как он эволюционировал. За полтора года реализация Outbox прошла четыре итерации. По пути мы ловили VACUUM, который останавливал сервис на три часа, теряли 5% событий за полтора дня и заваливали поддержку обращениями. Расскажу, какие реализации мы пробовали, на какие грабли наступали и почему остановились на варианте, который сами же не считаем идеальным.

    habr.com/ru/companies/tbank/ar

    #outbox #outboxпаттерн #outbox_pattern

  7. Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет

    Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или файлов. Сценарий с которого всё началось у меня. Пользователь в чате выбирает большое видео, нажимает отправить. Видео начинает грузиться. Пользователь нетерпеливый, прокручивает вверх посмотреть переписку, потом переходит в другой чат, потом возвращается. Что должен он увидеть? В Telegram он увидит свой видео-бабл с прогрессбаром, как и оставил. В большинстве самописных мессенджеров он увидит пустой чат без своего сообщения , потому что upload жил в state экрана, а экран размонтировался. XHR продолжал работать в фоне, файл загрузился на сервер, но результат пришёл в null, потому что setter уже не существует. Сообщение фактически отправлено, но пользователь об этом не знает. Это боль которая лечится не "правильным useState", а отдельным архитектурным слоем . Этот слой называется outbox. В этой статье разберу свою реализацию из ONEMIX, это 820 строк TypeScript которые делают то что в Telegram кажется естественным.

    habr.com/ru/articles/1034690/

    #react_native #мессенджер #optimistic_update #outbox #мобильная_разработка #архитектура #telegram #асинхронность #обработка_ошибок #retry

  8. Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет

    Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или файлов. Сценарий с которого всё началось у меня. Пользователь в чате выбирает большое видео, нажимает отправить. Видео начинает грузиться. Пользователь нетерпеливый, прокручивает вверх посмотреть переписку, потом переходит в другой чат, потом возвращается. Что должен он увидеть? В Telegram он увидит свой видео-бабл с прогрессбаром, как и оставил. В большинстве самописных мессенджеров он увидит пустой чат без своего сообщения , потому что upload жил в state экрана, а экран размонтировался. XHR продолжал работать в фоне, файл загрузился на сервер, но результат пришёл в null, потому что setter уже не существует. Сообщение фактически отправлено, но пользователь об этом не знает. Это боль которая лечится не "правильным useState", а отдельным архитектурным слоем . Этот слой называется outbox. В этой статье разберу свою реализацию из ONEMIX, это 820 строк TypeScript которые делают то что в Telegram кажется естественным.

    habr.com/ru/articles/1034690/

    #react_native #мессенджер #optimistic_update #outbox #мобильная_разработка #архитектура #telegram #асинхронность #обработка_ошибок #retry

  9. Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет

    Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или файлов. Сценарий с которого всё началось у меня. Пользователь в чате выбирает большое видео, нажимает отправить. Видео начинает грузиться. Пользователь нетерпеливый, прокручивает вверх посмотреть переписку, потом переходит в другой чат, потом возвращается. Что должен он увидеть? В Telegram он увидит свой видео-бабл с прогрессбаром, как и оставил. В большинстве самописных мессенджеров он увидит пустой чат без своего сообщения , потому что upload жил в state экрана, а экран размонтировался. XHR продолжал работать в фоне, файл загрузился на сервер, но результат пришёл в null, потому что setter уже не существует. Сообщение фактически отправлено, но пользователь об этом не знает. Это боль которая лечится не "правильным useState", а отдельным архитектурным слоем . Этот слой называется outbox. В этой статье разберу свою реализацию из ONEMIX, это 820 строк TypeScript которые делают то что в Telegram кажется естественным.

    habr.com/ru/articles/1034690/

    #react_native #мессенджер #optimistic_update #outbox #мобильная_разработка #архитектура #telegram #асинхронность #обработка_ошибок #retry

  10. : The is a pattern that ensures that a database or external system update is delivered and published to a messaging system as a single atomic unit.

    The idea of this approach is to have an "Outbox" table in the microservice's database.

    knowledgezone.co.in/trends/bro

  11. #ITByte: The #Outbox #Pattern is a #Design pattern that ensures that a database or external system update is delivered and published to a messaging system as a single atomic unit.

    The idea of this approach is to have an "Outbox" table in the microservice's database.

    knowledgezone.co.in/trends/bro

  12. #ITByte: The #Outbox #Pattern is a #Design pattern that ensures that a database or external system update is delivered and published to a messaging system as a single atomic unit.

    The idea of this approach is to have an "Outbox" table in the microservice's database.

    knowledgezone.co.in/trends/bro

  13. #ITByte: The #Outbox #Pattern is a #Design pattern that ensures that a database or external system update is delivered and published to a messaging system as a single atomic unit.

    The idea of this approach is to have an "Outbox" table in the microservice's database.

    knowledgezone.co.in/trends/bro

  14. #ITByte: The #Outbox #Pattern is a #Design pattern that ensures that a database or external system update is delivered and published to a messaging system as a single atomic unit.

    The idea of this approach is to have an "Outbox" table in the microservice's database.

    knowledgezone.co.in/trends/bro

  15. [Перевод] Паттерны событийно-ориентированной архитектуры в облачном банкинге: что работает, а что ломает систему

    Событийно-ориентированная архитектура часто выглядит как аккуратная схема с брокером, сервисами и красивыми стрелками между ними. В продакшене всё прозаичнее: события теряются, дублируются, приходят не по порядку, а контракты внезапно становятся долгоживущим API, который уже нельзя просто взять и переписать. В статье разбираем, как EDA ведёт себя в облачном банкинге: где она действительно помогает развязать системы и упростить аудит, а где добавляет новую сложность — от outbox/inbox и идемпотентности до границ доменных и интеграционных событий. Разобрать паттерны

    habr.com/ru/companies/otus/art

    #eventdriven_architecture #eda #cloudnative #банковские_системы #микросервисы #Kafka #outbox #inbox #идемпотентность

  16. [Перевод] Паттерны событийно-ориентированной архитектуры в облачном банкинге: что работает, а что ломает систему

    Событийно-ориентированная архитектура часто выглядит как аккуратная схема с брокером, сервисами и красивыми стрелками между ними. В продакшене всё прозаичнее: события теряются, дублируются, приходят не по порядку, а контракты внезапно становятся долгоживущим API, который уже нельзя просто взять и переписать. В статье разбираем, как EDA ведёт себя в облачном банкинге: где она действительно помогает развязать системы и упростить аудит, а где добавляет новую сложность — от outbox/inbox и идемпотентности до границ доменных и интеграционных событий. Разобрать паттерны

    habr.com/ru/companies/otus/art

    #eventdriven_architecture #eda #cloudnative #банковские_системы #микросервисы #Kafka #outbox #inbox #идемпотентность

  17. [Перевод] Паттерны событийно-ориентированной архитектуры в облачном банкинге: что работает, а что ломает систему

    Событийно-ориентированная архитектура часто выглядит как аккуратная схема с брокером, сервисами и красивыми стрелками между ними. В продакшене всё прозаичнее: события теряются, дублируются, приходят не по порядку, а контракты внезапно становятся долгоживущим API, который уже нельзя просто взять и переписать. В статье разбираем, как EDA ведёт себя в облачном банкинге: где она действительно помогает развязать системы и упростить аудит, а где добавляет новую сложность — от outbox/inbox и идемпотентности до границ доменных и интеграционных событий. Разобрать паттерны

    habr.com/ru/companies/otus/art

    #eventdriven_architecture #eda #cloudnative #банковские_системы #микросервисы #Kafka #outbox #inbox #идемпотентность

  18. По чему Kafka недостаточно: гарантированная доставка сообщений в распределённых системах

    Kafka часто воспринимается как система, гарантирующая доставку сообщений и Exactly Once Semantics. Однако в реальных распределённых системах эти гарантии заканчиваются на границе брокера. Сообщение может потеряться между записью в базу данных и публикацией события, а может быть обработано повторно при сбое сервиса. В этой статье разберём:

    habr.com/ru/articles/1012512/

    #гарантированная_доставка_сообщений #outbox #ibox #kafka #микросервисы #согласованность

  19. По чему Kafka недостаточно: гарантированная доставка сообщений в распределённых системах

    Kafka часто воспринимается как система, гарантирующая доставку сообщений и Exactly Once Semantics. Однако в реальных распределённых системах эти гарантии заканчиваются на границе брокера. Сообщение может потеряться между записью в базу данных и публикацией события, а может быть обработано повторно при сбое сервиса. В этой статье разберём:

    habr.com/ru/articles/1012512/

    #гарантированная_доставка_сообщений #outbox #ibox #kafka #микросервисы #согласованность

  20. По чему Kafka недостаточно: гарантированная доставка сообщений в распределённых системах

    Kafka часто воспринимается как система, гарантирующая доставку сообщений и Exactly Once Semantics. Однако в реальных распределённых системах эти гарантии заканчиваются на границе брокера. Сообщение может потеряться между записью в базу данных и публикацией события, а может быть обработано повторно при сбое сервиса. В этой статье разберём:

    habr.com/ru/articles/1012512/

    #гарантированная_доставка_сообщений #outbox #ibox #kafka #микросервисы #согласованность

  21. Паттерн Transactional Outbox на примере двух микросервисов на java

    Всем привет! В данной статье будет описан один из возможных вариантов реализации паттерна outbox transactional. План данной статьи такой. Вначале немного теории, а потом на примере двух микросервисов будет показала реализация данного паттерна с помощью debezium и kafka. Данная статья будет полезна для новичков, которые не встречались с данным паттерном. Весь код микросервисов будет доступен по ссылкам. Но вначале немного теории. Самый главный вопрос зачем нужен данный паттерн и какую он решает задачу. Паттерн Outbox – используется в распределенных транзакциях, то есть в транзакциях, которые проходят и затрагивают несколько микровервисов, для обеспечения гарантированной доставки сообщения от одного микросервиса до другого. Данный паттерн используется там, где очень критично чтобы сообщение не потерялось, даже при сбоях в системе. Outbox паттерн получил распространение именно в микросервисной архитектуре, где нет возможности с помощью одной аннотации обеспечить транзакционность какого-то метода и возможный откат всей транзакции в рамках нескольких микросервисов. Теперь перейдем к практике. Допустим у нас имеется два микросервиса: order-servic, в котором клиент заказывает какой-то товар и bank-service, в котором происходит оплата за этот товар. Весь код микросервисов будет доступен по ссылкам. Задача в том, чтобы при заказе товара обязательно произошло списание денег за него или если денег недостаточно или возникла ошибка на стороне банка микросервис по заказам узнал об этом. Для реализации этого паттерна я буду использовать debezium и kafka.

    habr.com/ru/articles/991934/

    #java #паттерны_проектирования #outbox #outboxпаттерн #transactional_outbox #kafkaconnect #debezium

  22. Паттерн Transactional Outbox на примере двух микросервисов на java

    Всем привет! В данной статье будет описан один из возможных вариантов реализации паттерна outbox transactional. План данной статьи такой. Вначале немного теории, а потом на примере двух микросервисов будет показала реализация данного паттерна с помощью debezium и kafka. Данная статья будет полезна для новичков, которые не встречались с данным паттерном. Весь код микросервисов будет доступен по ссылкам. Но вначале немного теории. Самый главный вопрос зачем нужен данный паттерн и какую он решает задачу. Паттерн Outbox – используется в распределенных транзакциях, то есть в транзакциях, которые проходят и затрагивают несколько микровервисов, для обеспечения гарантированной доставки сообщения от одного микросервиса до другого. Данный паттерн используется там, где очень критично чтобы сообщение не потерялось, даже при сбоях в системе. Outbox паттерн получил распространение именно в микросервисной архитектуре, где нет возможности с помощью одной аннотации обеспечить транзакционность какого-то метода и возможный откат всей транзакции в рамках нескольких микросервисов. Теперь перейдем к практике. Допустим у нас имеется два микросервиса: order-servic, в котором клиент заказывает какой-то товар и bank-service, в котором происходит оплата за этот товар. Весь код микросервисов будет доступен по ссылкам. Задача в том, чтобы при заказе товара обязательно произошло списание денег за него или если денег недостаточно или возникла ошибка на стороне банка микросервис по заказам узнал об этом. Для реализации этого паттерна я буду использовать debezium и kafka.

    habr.com/ru/articles/991934/

    #java #паттерны_проектирования #outbox #outboxпаттерн #transactional_outbox #kafkaconnect #debezium

  23. Паттерн Transactional Outbox на примере двух микросервисов на java

    Всем привет! В данной статье будет описан один из возможных вариантов реализации паттерна outbox transactional. План данной статьи такой. Вначале немного теории, а потом на примере двух микросервисов будет показала реализация данного паттерна с помощью debezium и kafka. Данная статья будет полезна для новичков, которые не встречались с данным паттерном. Весь код микросервисов будет доступен по ссылкам. Но вначале немного теории. Самый главный вопрос зачем нужен данный паттерн и какую он решает задачу. Паттерн Outbox – используется в распределенных транзакциях, то есть в транзакциях, которые проходят и затрагивают несколько микровервисов, для обеспечения гарантированной доставки сообщения от одного микросервиса до другого. Данный паттерн используется там, где очень критично чтобы сообщение не потерялось, даже при сбоях в системе. Outbox паттерн получил распространение именно в микросервисной архитектуре, где нет возможности с помощью одной аннотации обеспечить транзакционность какого-то метода и возможный откат всей транзакции в рамках нескольких микросервисов. Теперь перейдем к практике. Допустим у нас имеется два микросервиса: order-servic, в котором клиент заказывает какой-то товар и bank-service, в котором происходит оплата за этот товар. Весь код микросервисов будет доступен по ссылкам. Задача в том, чтобы при заказе товара обязательно произошло списание денег за него или если денег недостаточно или возникла ошибка на стороне банка микросервис по заказам узнал об этом. Для реализации этого паттерна я буду использовать debezium и kafka.

    habr.com/ru/articles/991934/

    #java #паттерны_проектирования #outbox #outboxпаттерн #transactional_outbox #kafkaconnect #debezium

  24. Build Real Time Data Pipelines with #PostgreSQL and Apache #Nifi: #CDC via logical replication and #Outbox via table polling.

    The Outbox Pattern offers simple operations and explicit control over event schemas, making it well-suited for event-driven architectures where you control the source application.

    The CDC Pattern is ideal when you need the complete change history or must capture changes from applications you can't modify. However, it requires more operational overhead (compared to outbox) to manage replication slots and WAL growth.

    Choose CDC (Logical Replication) when:

    You need to include all changed data, including legacy applications you can't modify
    Your schema changes are database-driven
    You build a data lake or audit log is required including complete change history

    Choose Outbox Pattern when:

    You focus simpler operations
    You manage and implement the application that is the source of data changes
    You need explicit control over event schema and content
    You implement event-driven architecture with self- or well-defined domain events

    lotharschulz.info/2026/01/05/b

  25. Build Real Time Data Pipelines with and Apache : via logical replication and via table polling.

    The Outbox Pattern offers simple operations and explicit control over event schemas, making it well-suited for event-driven architectures where you control the source application.

    The CDC Pattern is ideal when you need the complete change history or must capture changes from applications you can't modify. However, it requires more operational overhead (compared to outbox) to manage replication slots and WAL growth.

    Choose CDC (Logical Replication) when:

    You need to include all changed data, including legacy applications you can't modify
    Your schema changes are database-driven
    You build a data lake or audit log is required including complete change history

    Choose Outbox Pattern when:

    You focus simpler operations
    You manage and implement the application that is the source of data changes
    You need explicit control over event schema and content
    You implement event-driven architecture with self- or well-defined domain events

    lotharschulz.info/2026/01/05/b

  26. Build Real Time Data Pipelines with #PostgreSQL and Apache #Nifi: #CDC via logical replication and #Outbox via table polling.

    The Outbox Pattern offers simple operations and explicit control over event schemas, making it well-suited for event-driven architectures where you control the source application.

    The CDC Pattern is ideal when you need the complete change history or must capture changes from applications you can't modify. However, it requires more operational overhead (compared to outbox) to manage replication slots and WAL growth.

    Choose CDC (Logical Replication) when:

    You need to include all changed data, including legacy applications you can't modify
    Your schema changes are database-driven
    You build a data lake or audit log is required including complete change history

    Choose Outbox Pattern when:

    You focus simpler operations
    You manage and implement the application that is the source of data changes
    You need explicit control over event schema and content
    You implement event-driven architecture with self- or well-defined domain events

    lotharschulz.info/2026/01/05/b

  27. [Перевод] Паттерн Outbox для надежного обмена сообщениями в микросервисах

    Работа с микросервисами достаточно сложная, как и с любой распределенной системой. Уменьшение количества возможных точек отказа должно быть одной из целей инженера, который проектирует распределенную систему. В этой статье мы постараемся достичь именно этого, используя паттерн Outbox.

    habr.com/ru/articles/969512/

    #net #net_core #csharp #csharpnet #c# #patterns #pattern #outbox #outboxпаттерн

  28. [Перевод] Паттерн Outbox для надежного обмена сообщениями в микросервисах

    Работа с микросервисами достаточно сложная, как и с любой распределенной системой. Уменьшение количества возможных точек отказа должно быть одной из целей инженера, который проектирует распределенную систему. В этой статье мы постараемся достичь именно этого, используя паттерн Outbox.

    habr.com/ru/articles/969512/

    #net #net_core #csharp #csharpnet #c# #patterns #pattern #outbox #outboxпаттерн

  29. [Перевод] Паттерн Outbox для надежного обмена сообщениями в микросервисах

    Работа с микросервисами достаточно сложная, как и с любой распределенной системой. Уменьшение количества возможных точек отказа должно быть одной из целей инженера, который проектирует распределенную систему. В этой статье мы постараемся достичь именно этого, используя паттерн Outbox.

    habr.com/ru/articles/969512/

    #net #net_core #csharp #csharpnet #c# #patterns #pattern #outbox #outboxпаттерн

  30. Микросервисная трансформация в Купере — как это было. Часть I: Начинаем распил монолитов

    Привет! Меня зовут Фёдор Засечкин. С 2023 года я руковожу группой разработки операционной платформы в Купере. Наша команда отвечает за стабильность и развитие сервисов, которые обеспечивают сборку и доставку заказов, а также найм и выход партнёров в смены. Последние два года наша ключевая задача — микросервисная трансформация . Мы постепенно распиливаем монолит, перераспределяя нагрузку по сервисам. На сегодня более 1 000 RPS HTTP-трафика уже ушло с монолита; до полного завершения осталось около 30 RPS и часть межсервисных интеграций. Я решил написать серию статей о том, как мы проходили этот путь: что сработало, какие ошибки допустили и какие решения реально помогли. Этот текст — первый из серии.

    habr.com/ru/companies/kuper/ar

    #микросервисы #монолит #архитектура #kafka #outbox #проектирование_систем

  31. Микросервисная трансформация в Купере — как это было. Часть I: Начинаем распил монолитов

    Привет! Меня зовут Фёдор Засечкин. С 2023 года я руковожу группой разработки операционной платформы в Купере. Наша команда отвечает за стабильность и развитие сервисов, которые обеспечивают сборку и доставку заказов, а также найм и выход партнёров в смены. Последние два года наша ключевая задача — микросервисная трансформация . Мы постепенно распиливаем монолит, перераспределяя нагрузку по сервисам. На сегодня более 1 000 RPS HTTP-трафика уже ушло с монолита; до полного завершения осталось около 30 RPS и часть межсервисных интеграций. Я решил написать серию статей о том, как мы проходили этот путь: что сработало, какие ошибки допустили и какие решения реально помогли. Этот текст — первый из серии.

    habr.com/ru/companies/kuper/ar

    #микросервисы #монолит #архитектура #kafka #outbox #проектирование_систем

  32. Микросервисная трансформация в Купере — как это было. Часть I: Начинаем распил монолитов

    Привет! Меня зовут Фёдор Засечкин. С 2023 года я руковожу группой разработки операционной платформы в Купере. Наша команда отвечает за стабильность и развитие сервисов, которые обеспечивают сборку и доставку заказов, а также найм и выход партнёров в смены. Последние два года наша ключевая задача — микросервисная трансформация . Мы постепенно распиливаем монолит, перераспределяя нагрузку по сервисам. На сегодня более 1 000 RPS HTTP-трафика уже ушло с монолита; до полного завершения осталось около 30 RPS и часть межсервисных интеграций. Я решил написать серию статей о том, как мы проходили этот путь: что сработало, какие ошибки допустили и какие решения реально помогли. Этот текст — первый из серии.

    habr.com/ru/companies/kuper/ar

    #микросервисы #монолит #архитектура #kafka #outbox #проектирование_систем

  33. Spring-boot-starter для паттерна Transaction outbox Kafka

    В микросервисной архитектуре мы постоянно сталкиваемся с задачей: сохранить изменения в базе и гарантированно отправить событие в Kafka. На первый взгляд звучит просто — сделал транзакцию, отправил сообщение, закоммитил. Но в реальности между базой данных и брокером сообщений никакой общей транзакции нет. В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter , который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.

    habr.com/ru/articles/966802/

    #kotlin #java #spring #springboot #starter #spring_boot_starter #kafka #outbox #jooq #spring_data_jpa

  34. Spring-boot-starter для паттерна Transaction outbox Kafka

    В микросервисной архитектуре мы постоянно сталкиваемся с задачей: сохранить изменения в базе и гарантированно отправить событие в Kafka. На первый взгляд звучит просто — сделал транзакцию, отправил сообщение, закоммитил. Но в реальности между базой данных и брокером сообщений никакой общей транзакции нет. В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter , который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.

    habr.com/ru/articles/966802/

    #kotlin #java #spring #springboot #starter #spring_boot_starter #kafka #outbox #jooq #spring_data_jpa

  35. Spring-boot-starter для паттерна Transaction outbox Kafka

    В микросервисной архитектуре мы постоянно сталкиваемся с задачей: сохранить изменения в базе и гарантированно отправить событие в Kafka. На первый взгляд звучит просто — сделал транзакцию, отправил сообщение, закоммитил. Но в реальности между базой данных и брокером сообщений никакой общей транзакции нет. В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter , который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.

    habr.com/ru/articles/966802/

    #kotlin #java #spring #springboot #starter #spring_boot_starter #kafka #outbox #jooq #spring_data_jpa

  36. Po bliższym zapoznaniu się można dostrzec, że omawiany tutaj wzorzec #Outbox jest dość oczywisty i wielu z nas wpada na niego samoistnie. Ale to dobrze, bo to oznacza, że rzeczywiście jest to rozwiązanie warte rozważenia. Tutaj przykład implementacji w #PostgreSQL i #Go.

    #programowanie

    packagemain.tech/p/how-to-impl

  37. Po bliższym zapoznaniu się można dostrzec, że omawiany tutaj wzorzec #Outbox jest dość oczywisty i wielu z nas wpada na niego samoistnie. Ale to dobrze, bo to oznacza, że rzeczywiście jest to rozwiązanie warte rozważenia. Tutaj przykład implementacji w #PostgreSQL i #Go.

    #programowanie

    packagemain.tech/p/how-to-impl

  38. Автоматизированное машинное обучение с помощью нашего Open Source фреймворка: задача о Титанике

    Привет! Меня зовут Владимир Суворов, я Senior Data Scientist в Страховом Доме ВСК и core-разработчик нашей библиотеки машинного обучения OutBoxML. В статье сегодня мы поговорим не о выборе алгоритмов, а о том, как автоматизировать весь процесс ML — от данных до деплоя и мониторинга, сократив время на подготовку с дней до часов. Мы разберем это на примере классической задачи с Titanic, реализованной на нашем фреймворке. Приятного прочтения! Читать и обсуждать

    habr.com/ru/companies/vsk_insu

    #ml #opensource #python #fastapi #outbox #data_science #bigdata #machinelearning #framework #titanik

  39. Автоматизированное машинное обучение с помощью нашего Open Source фреймворка: задача о Титанике

    Привет! Меня зовут Владимир Суворов, я Senior Data Scientist в Страховом Доме ВСК и core-разработчик нашей библиотеки машинного обучения OutBoxML. В статье сегодня мы поговорим не о выборе алгоритмов, а о том, как автоматизировать весь процесс ML — от данных до деплоя и мониторинга, сократив время на подготовку с дней до часов. Мы разберем это на примере классической задачи с Titanic, реализованной на нашем фреймворке. Приятного прочтения! Читать и обсуждать

    habr.com/ru/companies/vsk_insu

    #ml #opensource #python #fastapi #outbox #data_science #bigdata #machinelearning #framework #titanik

  40. Автоматизированное машинное обучение с помощью нашего Open Source фреймворка: задача о Титанике

    Привет! Меня зовут Владимир Суворов, я Senior Data Scientist в Страховом Доме ВСК и core-разработчик нашей библиотеки машинного обучения OutBoxML. В статье сегодня мы поговорим не о выборе алгоритмов, а о том, как автоматизировать весь процесс ML — от данных до деплоя и мониторинга, сократив время на подготовку с дней до часов. Мы разберем это на примере классической задачи с Titanic, реализованной на нашем фреймворке. Приятного прочтения! Читать и обсуждать

    habr.com/ru/companies/vsk_insu

    #ml #opensource #python #fastapi #outbox #data_science #bigdata #machinelearning #framework #titanik

  41. RabbitMQ как инструмент «деградации с честью»

    Как построить микросервисы на RabbitMQ так, чтобы система не падала каскадом, а деградировала предсказуемо: outbox, mandatory, AE, идемпотентность, DLQ, приоритеты и реальные грабли из продакшена

    habr.com/ru/articles/943022/

    #rabbitmq #микросервисы #очереди_сообщений #outbox #отказоустойчивость #архитектурные_паттерны #highload #python #postgresql #идемпотентность

  42. RabbitMQ как инструмент «деградации с честью»

    Как построить микросервисы на RabbitMQ так, чтобы система не падала каскадом, а деградировала предсказуемо: outbox, mandatory, AE, идемпотентность, DLQ, приоритеты и реальные грабли из продакшена

    habr.com/ru/articles/943022/

    #rabbitmq #микросервисы #очереди_сообщений #outbox #отказоустойчивость #архитектурные_паттерны #highload #python #postgresql #идемпотентность

  43. RabbitMQ как инструмент «деградации с честью»

    Как построить микросервисы на RabbitMQ так, чтобы система не падала каскадом, а деградировала предсказуемо: outbox, mandatory, AE, идемпотентность, DLQ, приоритеты и реальные грабли из продакшена

    habr.com/ru/articles/943022/

    #rabbitmq #микросервисы #очереди_сообщений #outbox #отказоустойчивость #архитектурные_паттерны #highload #python #postgresql #идемпотентность

  44. Revamped the #router so now it shows the #emoji tags as most #instances do, not only in outbox, but in status too
    https://codeberg.org/alceawisteria/JsonActiPubFederate_landrok-rewrite/commit/6057b027cd51a1c5daa735f3ca435c0aa9907f22
    :blobcatthinkowo:
    •acws #acws

    https://ibb.co/cSFnMFth
    https://i.ibb.co/Tx83p8RM/Screenshot-20250720-122440-Brave.png

    Serving from #outbox directly was a #nightmare , so maybe.?

    TL;DR if this won't fix #emoji nothing will and the v1/endpoints become congested when going over say 300+ shorthands

  45. Revamped the #router so now it shows the #emoji tags as most #instances do, not only in outbox, but in status too
    https://codeberg.org/alceawisteria/JsonActiPubFederate_landrok-rewrite/commit/6057b027cd51a1c5daa735f3ca435c0aa9907f22
    :blobcatthinkowo:
    •acws #acws

    https://ibb.co/cSFnMFth
    https://i.ibb.co/Tx83p8RM/Screenshot-20250720-122440-Brave.png

    Serving from #outbox directly was a #nightmare , so maybe.?

    TL;DR if this won't fix #emoji nothing will and the v1/endpoints become congested when going over say 300+ shorthands

  46. #Fediverse-#Protokoll #ActivityPub

    Actor, Inbox, Outbox

    Viele Instanzen im #Fediverse unterhalten sich untereinander mit Hilfe des standardisierten Protokolls #ActivityPub. Hierbei werden die einzelnen teilnehmenden Konten (etwa Personen) bei ActivityPub als #Actor bezeichnet. Eine passende Übersetzung wäre vielleicht "Akteur".

    Jeder Actor besitzt eine #Inbox und eine #Outbox, also gewissermaßen einen Posteingang und einen Postausgang.

    Wichtig für die Kommunikation (zwischen Instanzen) ist hierbei insbesondere eine funktionierende Inbox: An diese werden eingehenden Beiträge und Nachrichten zugestellt.

    Fediversale Serversoftware optimiert dies übrigens gern und stellt eine geteilte Inbox (für die Instanz) zur Verfügung, so daß etwas ein Beitrag von Akteur A auf Instanz A nur einmal an Instanz B zugestellt wird, auch wenn mehrere verschiedene Akteure auf Instanz B Akteur A folgen. Die weitere Verteilung kann dann intern auf Instanz B erfolgen.

  47. #Fediverse-#Protokoll #ActivityPub

    Actor, Inbox, Outbox

    Viele Instanzen im #Fediverse unterhalten sich untereinander mit Hilfe des standardisierten Protokolls #ActivityPub. Hierbei werden die einzelnen teilnehmenden Konten (etwa Personen) bei ActivityPub als #Actor bezeichnet. Eine passende Übersetzung wäre vielleicht "Akteur".

    Jeder Actor besitzt eine #Inbox und eine #Outbox, also gewissermaßen einen Posteingang und einen Postausgang.

    Wichtig für die Kommunikation (zwischen Instanzen) ist hierbei insbesondere eine funktionierende Inbox: An diese werden eingehenden Beiträge und Nachrichten zugestellt.

    Fediversale Serversoftware optimiert dies übrigens gern und stellt eine geteilte Inbox (für die Instanz) zur Verfügung, so daß etwas ein Beitrag von Akteur A auf Instanz A nur einmal an Instanz B zugestellt wird, auch wenn mehrere verschiedene Akteure auf Instanz B Akteur A folgen. Die weitere Verteilung kann dann intern auf Instanz B erfolgen.

  48. #Fediverse-#Protokoll #ActivityPub

    Actor, Inbox, Outbox

    Viele Instanzen im #Fediverse unterhalten sich untereinander mit Hilfe des standardisierten Protokolls #ActivityPub. Hierbei werden die einzelnen teilnehmenden Konten (etwa Personen) bei ActivityPub als #Actor bezeichnet. Eine passende Übersetzung wäre vielleicht "Akteur".

    Jeder Actor besitzt eine #Inbox und eine #Outbox, also gewissermaßen einen Posteingang und einen Postausgang.

    Wichtig für die Kommunikation (zwischen Instanzen) ist hierbei insbesondere eine funktionierende Inbox: An diese werden eingehenden Beiträge und Nachrichten zugestellt.

    Fediversale Serversoftware optimiert dies übrigens gern und stellt eine geteilte Inbox (für die Instanz) zur Verfügung, so daß etwas ein Beitrag von Akteur A auf Instanz A nur einmal an Instanz B zugestellt wird, auch wenn mehrere verschiedene Akteure auf Instanz B Akteur A folgen. Die weitere Verteilung kann dann intern auf Instanz B erfolgen.

  49. What we shipped so far in 2025

    Alongside our upcoming plans, we’ve already shipped several important features in recent releases. Here are some highlights of what’s now available in the ActivityPub plugin.

    Onboarding

    We’ve added an onboarding flow after plugin activation to help guide new users through key decisions — such as selecting the Actor Mode.

    It’s also a great opportunity to explain Fediverse concepts for users who are new to them.

    More details:

    👉 5.9.0 — Easier onboarding for your Fediverse […]

    activitypub.blog/2025/06/24/wh

  50. What we shipped so far in 2025

    Alongside our upcoming plans, we’ve already shipped several important features in recent releases. Here are some highlights of what’s now available in the ActivityPub plugin.

    Onboarding

    We’ve added an onboarding flow after plugin activation to help guide new users through key decisions — such as selecting the Actor Mode.

    It’s also a great opportunity to explain Fediverse concepts for users who are new to them.

    More details:

    👉 5.9.0 — Easier onboarding for your Fediverse […]

    activitypub.blog/2025/06/24/wh

  51. What we shipped so far in 2025

    Alongside our upcoming plans, we’ve already shipped several important features in recent releases. Here are some highlights of what’s now available in the ActivityPub plugin.

    Onboarding

    We’ve added an onboarding flow after plugin activation to help guide new users through key decisions — such as selecting the Actor Mode.

    It’s also a great opportunity to explain Fediverse concepts for users who are new to them.

    More details:

    👉 5.9.0 — Easier onboarding for your Fediverse […]

    activitypub.blog/2025/06/24/wh

  52. What we shipped so far in 2025

    Alongside our upcoming plans, we’ve already shipped several important features in recent releases. Here are some highlights of what’s now available in the ActivityPub plugin.

    Onboarding

    We’ve added an onboarding flow after plugin activation to help guide new users through key decisions — such as selecting the Actor Mode.

    It’s also a great opportunity to explain Fediverse concepts for users who are new to them.

    More details:

    👉 5.9.0 — Easier onboarding for your Fediverse […]

    activitypub.blog/2025/06/24/wh

  53. What we shipped so far in 2025

    Alongside our upcoming plans, we’ve already shipped several important features in recent releases. Here are some highlights of what’s now available in the ActivityPub plugin.

    Onboarding

    We’ve added an onboarding flow after plugin activation to help guide new users through key decisions — such as selecting the Actor Mode.

    It’s also a great opportunity to explain Fediverse concepts for users who are new to them.

    More details:

    👉 5.9.0 — Easier onboarding for your Fediverse […]

    activitypub.blog/2025/06/24/wh

  54. Em sembla que ja funciona com cal, ja fa el paginat de tots els tuts del compte consultat.

    codeberg.org/spla/appy/commit/

    #appy #outbox

  55. Em sembla que ja funciona com cal, ja fa el paginat de tots els tuts del compte consultat.

    codeberg.org/spla/appy/commit/

    #appy #outbox

  56. Em sembla que ja funciona com cal, ja fa el paginat de tots els tuts del compte consultat.

    codeberg.org/spla/appy/commit/

    #appy #outbox

  57. Em sembla que ja funciona com cal, ja fa el paginat de tots els tuts del compte consultat.

    codeberg.org/spla/appy/commit/

    #appy #outbox