#outbox — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #outbox, aggregated by home.social.
-
Почему отправленная MDM-команда ещё не означает выполненную
MDM-команда проходит через очередь, инфраструктуру Apple или Google и агент на устройстве. Поэтому ответ API ещё ничего не говорит о фактическом применении политики. Разбираю модель доставки, которую мы используем в Айтера MDM: desired, delivery и observed state, Outbox, ретраи, идемпотентность и разные транспортные контуры Android Enterprise и Apple MDM.
https://habr.com/ru/articles/1066224/
#MDM #Android_Enterprise #iOS #APNs #Android_Management_API #Outbox #eventual_consistency #управление_устройствами
-
Почему отправленная MDM-команда ещё не означает выполненную
MDM-команда проходит через очередь, инфраструктуру Apple или Google и агент на устройстве. Поэтому ответ API ещё ничего не говорит о фактическом применении политики. Разбираю модель доставки, которую мы используем в Айтера MDM: desired, delivery и observed state, Outbox, ретраи, идемпотентность и разные транспортные контуры Android Enterprise и Apple MDM.
https://habr.com/ru/articles/1066224/
#MDM #Android_Enterprise #iOS #APNs #Android_Management_API #Outbox #eventual_consistency #управление_устройствами
-
Почему отправленная MDM-команда ещё не означает выполненную
MDM-команда проходит через очередь, инфраструктуру Apple или Google и агент на устройстве. Поэтому ответ API ещё ничего не говорит о фактическом применении политики. Разбираю модель доставки, которую мы используем в Айтера MDM: desired, delivery и observed state, Outbox, ретраи, идемпотентность и разные транспортные контуры Android Enterprise и Apple MDM.
https://habr.com/ru/articles/1066224/
#MDM #Android_Enterprise #iOS #APNs #Android_Management_API #Outbox #eventual_consistency #управление_устройствами
-
https://www.europesays.com/africa/302548/ Young Women Lead Digital Revolution at Refactory Academy’s 2026 Solutions Expo #DigitalInnovation #EquityBank #MastercardFoundation #MTNMOMO #Nakawa #Outbox #RefactoryAcademy #Uganda #UgandaICT #WomenInTech #YouthEmployment
-
Как мы четыре раза переписали Outbox
Привет! Я Ильдус Тукаев, разработчик в команде образовательной платформы Т-Банка. Мы помогаем школьникам, студентам, молодым специалистам и сотрудникам получать знания и качать свои софт и хард навыки. Основной язык у нас Go, но сегодня расскажу больше про архитектурную тему: как у нас в команде использовался паттерн Outbox и как он эволюционировал. За полтора года реализация Outbox прошла четыре итерации. По пути мы ловили VACUUM, который останавливал сервис на три часа, теряли 5% событий за полтора дня и заваливали поддержку обращениями. Расскажу, какие реализации мы пробовали, на какие грабли наступали и почему остановились на варианте, который сами же не считаем идеальным.
-
Как мы четыре раза переписали Outbox
Привет! Я Ильдус Тукаев, разработчик в команде образовательной платформы Т-Банка. Мы помогаем школьникам, студентам, молодым специалистам и сотрудникам получать знания и качать свои софт и хард навыки. Основной язык у нас Go, но сегодня расскажу больше про архитектурную тему: как у нас в команде использовался паттерн Outbox и как он эволюционировал. За полтора года реализация Outbox прошла четыре итерации. По пути мы ловили VACUUM, который останавливал сервис на три часа, теряли 5% событий за полтора дня и заваливали поддержку обращениями. Расскажу, какие реализации мы пробовали, на какие грабли наступали и почему остановились на варианте, который сами же не считаем идеальным.
-
Как мы четыре раза переписали Outbox
Привет! Я Ильдус Тукаев, разработчик в команде образовательной платформы Т-Банка. Мы помогаем школьникам, студентам, молодым специалистам и сотрудникам получать знания и качать свои софт и хард навыки. Основной язык у нас Go, но сегодня расскажу больше про архитектурную тему: как у нас в команде использовался паттерн Outbox и как он эволюционировал. За полтора года реализация Outbox прошла четыре итерации. По пути мы ловили VACUUM, который останавливал сервис на три часа, теряли 5% событий за полтора дня и заваливали поддержку обращениями. Расскажу, какие реализации мы пробовали, на какие грабли наступали и почему остановились на варианте, который сами же не считаем идеальным.
-
Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет
Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или файлов. Сценарий с которого всё началось у меня. Пользователь в чате выбирает большое видео, нажимает отправить. Видео начинает грузиться. Пользователь нетерпеливый, прокручивает вверх посмотреть переписку, потом переходит в другой чат, потом возвращается. Что должен он увидеть? В Telegram он увидит свой видео-бабл с прогрессбаром, как и оставил. В большинстве самописных мессенджеров он увидит пустой чат без своего сообщения , потому что upload жил в state экрана, а экран размонтировался. XHR продолжал работать в фоне, файл загрузился на сервер, но результат пришёл в null, потому что setter уже не существует. Сообщение фактически отправлено, но пользователь об этом не знает. Это боль которая лечится не "правильным useState", а отдельным архитектурным слоем . Этот слой называется outbox. В этой статье разберу свою реализацию из ONEMIX, это 820 строк TypeScript которые делают то что в Telegram кажется естественным.
https://habr.com/ru/articles/1034690/
#react_native #мессенджер #optimistic_update #outbox #мобильная_разработка #архитектура #telegram #асинхронность #обработка_ошибок #retry
-
Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет
Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или файлов. Сценарий с которого всё началось у меня. Пользователь в чате выбирает большое видео, нажимает отправить. Видео начинает грузиться. Пользователь нетерпеливый, прокручивает вверх посмотреть переписку, потом переходит в другой чат, потом возвращается. Что должен он увидеть? В Telegram он увидит свой видео-бабл с прогрессбаром, как и оставил. В большинстве самописных мессенджеров он увидит пустой чат без своего сообщения , потому что upload жил в state экрана, а экран размонтировался. XHR продолжал работать в фоне, файл загрузился на сервер, но результат пришёл в null, потому что setter уже не существует. Сообщение фактически отправлено, но пользователь об этом не знает. Это боль которая лечится не "правильным useState", а отдельным архитектурным слоем . Этот слой называется outbox. В этой статье разберу свою реализацию из ONEMIX, это 820 строк TypeScript которые делают то что в Telegram кажется естественным.
https://habr.com/ru/articles/1034690/
#react_native #мессенджер #optimistic_update #outbox #мобильная_разработка #архитектура #telegram #асинхронность #обработка_ошибок #retry
-
Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет
Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или файлов. Сценарий с которого всё началось у меня. Пользователь в чате выбирает большое видео, нажимает отправить. Видео начинает грузиться. Пользователь нетерпеливый, прокручивает вверх посмотреть переписку, потом переходит в другой чат, потом возвращается. Что должен он увидеть? В Telegram он увидит свой видео-бабл с прогрессбаром, как и оставил. В большинстве самописных мессенджеров он увидит пустой чат без своего сообщения , потому что upload жил в state экрана, а экран размонтировался. XHR продолжал работать в фоне, файл загрузился на сервер, но результат пришёл в null, потому что setter уже не существует. Сообщение фактически отправлено, но пользователь об этом не знает. Это боль которая лечится не "правильным useState", а отдельным архитектурным слоем . Этот слой называется outbox. В этой статье разберу свою реализацию из ONEMIX, это 820 строк TypeScript которые делают то что в Telegram кажется естественным.
https://habr.com/ru/articles/1034690/
#react_native #мессенджер #optimistic_update #outbox #мобильная_разработка #архитектура #telegram #асинхронность #обработка_ошибок #retry
-
#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.
https://knowledgezone.co.in/trends/browser?topic=Outbox-Pattern
-
#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.
https://knowledgezone.co.in/trends/browser?topic=Outbox-Pattern
-
#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.
https://knowledgezone.co.in/trends/browser?topic=Outbox-Pattern
-
#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.
https://knowledgezone.co.in/trends/browser?topic=Outbox-Pattern
-
#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.
https://knowledgezone.co.in/trends/browser?topic=Outbox-Pattern
-
[Перевод] Паттерны событийно-ориентированной архитектуры в облачном банкинге: что работает, а что ломает систему
Событийно-ориентированная архитектура часто выглядит как аккуратная схема с брокером, сервисами и красивыми стрелками между ними. В продакшене всё прозаичнее: события теряются, дублируются, приходят не по порядку, а контракты внезапно становятся долгоживущим API, который уже нельзя просто взять и переписать. В статье разбираем, как EDA ведёт себя в облачном банкинге: где она действительно помогает развязать системы и упростить аудит, а где добавляет новую сложность — от outbox/inbox и идемпотентности до границ доменных и интеграционных событий. Разобрать паттерны
https://habr.com/ru/companies/otus/articles/1031094/
#eventdriven_architecture #eda #cloudnative #банковские_системы #микросервисы #Kafka #outbox #inbox #идемпотентность
-
[Перевод] Паттерны событийно-ориентированной архитектуры в облачном банкинге: что работает, а что ломает систему
Событийно-ориентированная архитектура часто выглядит как аккуратная схема с брокером, сервисами и красивыми стрелками между ними. В продакшене всё прозаичнее: события теряются, дублируются, приходят не по порядку, а контракты внезапно становятся долгоживущим API, который уже нельзя просто взять и переписать. В статье разбираем, как EDA ведёт себя в облачном банкинге: где она действительно помогает развязать системы и упростить аудит, а где добавляет новую сложность — от outbox/inbox и идемпотентности до границ доменных и интеграционных событий. Разобрать паттерны
https://habr.com/ru/companies/otus/articles/1031094/
#eventdriven_architecture #eda #cloudnative #банковские_системы #микросервисы #Kafka #outbox #inbox #идемпотентность
-
[Перевод] Паттерны событийно-ориентированной архитектуры в облачном банкинге: что работает, а что ломает систему
Событийно-ориентированная архитектура часто выглядит как аккуратная схема с брокером, сервисами и красивыми стрелками между ними. В продакшене всё прозаичнее: события теряются, дублируются, приходят не по порядку, а контракты внезапно становятся долгоживущим API, который уже нельзя просто взять и переписать. В статье разбираем, как EDA ведёт себя в облачном банкинге: где она действительно помогает развязать системы и упростить аудит, а где добавляет новую сложность — от outbox/inbox и идемпотентности до границ доменных и интеграционных событий. Разобрать паттерны
https://habr.com/ru/companies/otus/articles/1031094/
#eventdriven_architecture #eda #cloudnative #банковские_системы #микросервисы #Kafka #outbox #inbox #идемпотентность
-
По чему Kafka недостаточно: гарантированная доставка сообщений в распределённых системах
Kafka часто воспринимается как система, гарантирующая доставку сообщений и Exactly Once Semantics. Однако в реальных распределённых системах эти гарантии заканчиваются на границе брокера. Сообщение может потеряться между записью в базу данных и публикацией события, а может быть обработано повторно при сбое сервиса. В этой статье разберём:
https://habr.com/ru/articles/1012512/
#гарантированная_доставка_сообщений #outbox #ibox #kafka #микросервисы #согласованность
-
По чему Kafka недостаточно: гарантированная доставка сообщений в распределённых системах
Kafka часто воспринимается как система, гарантирующая доставку сообщений и Exactly Once Semantics. Однако в реальных распределённых системах эти гарантии заканчиваются на границе брокера. Сообщение может потеряться между записью в базу данных и публикацией события, а может быть обработано повторно при сбое сервиса. В этой статье разберём:
https://habr.com/ru/articles/1012512/
#гарантированная_доставка_сообщений #outbox #ibox #kafka #микросервисы #согласованность
-
По чему Kafka недостаточно: гарантированная доставка сообщений в распределённых системах
Kafka часто воспринимается как система, гарантирующая доставку сообщений и Exactly Once Semantics. Однако в реальных распределённых системах эти гарантии заканчиваются на границе брокера. Сообщение может потеряться между записью в базу данных и публикацией события, а может быть обработано повторно при сбое сервиса. В этой статье разберём:
https://habr.com/ru/articles/1012512/
#гарантированная_доставка_сообщений #outbox #ibox #kafka #микросервисы #согласованность
-
Паттерн 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
-
Паттерн 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
-
Паттерн 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
-
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 historyChoose 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 -
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 historyChoose 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 -
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 historyChoose 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 -
-
-
[Перевод] Паттерн 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паттерн
-
Микросервисная трансформация в Купере — как это было. Часть I: Начинаем распил монолитов
Привет! Меня зовут Фёдор Засечкин. С 2023 года я руковожу группой разработки операционной платформы в Купере. Наша команда отвечает за стабильность и развитие сервисов, которые обеспечивают сборку и доставку заказов, а также найм и выход партнёров в смены. Последние два года наша ключевая задача — микросервисная трансформация . Мы постепенно распиливаем монолит, перераспределяя нагрузку по сервисам. На сегодня более 1 000 RPS HTTP-трафика уже ушло с монолита; до полного завершения осталось около 30 RPS и часть межсервисных интеграций. Я решил написать серию статей о том, как мы проходили этот путь: что сработало, какие ошибки допустили и какие решения реально помогли. Этот текст — первый из серии.
https://habr.com/ru/companies/kuper/articles/961630/
#микросервисы #монолит #архитектура #kafka #outbox #проектирование_систем
-
Микросервисная трансформация в Купере — как это было. Часть I: Начинаем распил монолитов
Привет! Меня зовут Фёдор Засечкин. С 2023 года я руковожу группой разработки операционной платформы в Купере. Наша команда отвечает за стабильность и развитие сервисов, которые обеспечивают сборку и доставку заказов, а также найм и выход партнёров в смены. Последние два года наша ключевая задача — микросервисная трансформация . Мы постепенно распиливаем монолит, перераспределяя нагрузку по сервисам. На сегодня более 1 000 RPS HTTP-трафика уже ушло с монолита; до полного завершения осталось около 30 RPS и часть межсервисных интеграций. Я решил написать серию статей о том, как мы проходили этот путь: что сработало, какие ошибки допустили и какие решения реально помогли. Этот текст — первый из серии.
https://habr.com/ru/companies/kuper/articles/961630/
#микросервисы #монолит #архитектура #kafka #outbox #проектирование_систем
-
Микросервисная трансформация в Купере — как это было. Часть I: Начинаем распил монолитов
Привет! Меня зовут Фёдор Засечкин. С 2023 года я руковожу группой разработки операционной платформы в Купере. Наша команда отвечает за стабильность и развитие сервисов, которые обеспечивают сборку и доставку заказов, а также найм и выход партнёров в смены. Последние два года наша ключевая задача — микросервисная трансформация . Мы постепенно распиливаем монолит, перераспределяя нагрузку по сервисам. На сегодня более 1 000 RPS HTTP-трафика уже ушло с монолита; до полного завершения осталось около 30 RPS и часть межсервисных интеграций. Я решил написать серию статей о том, как мы проходили этот путь: что сработало, какие ошибки допустили и какие решения реально помогли. Этот текст — первый из серии.
https://habr.com/ru/companies/kuper/articles/961630/
#микросервисы #монолит #архитектура #kafka #outbox #проектирование_систем
-
Spring-boot-starter для паттерна Transaction outbox Kafka
В микросервисной архитектуре мы постоянно сталкиваемся с задачей: сохранить изменения в базе и гарантированно отправить событие в Kafka. На первый взгляд звучит просто — сделал транзакцию, отправил сообщение, закоммитил. Но в реальности между базой данных и брокером сообщений никакой общей транзакции нет. В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter , который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.
https://habr.com/ru/articles/966802/
#kotlin #java #spring #springboot #starter #spring_boot_starter #kafka #outbox #jooq #spring_data_jpa
-
Spring-boot-starter для паттерна Transaction outbox Kafka
В микросервисной архитектуре мы постоянно сталкиваемся с задачей: сохранить изменения в базе и гарантированно отправить событие в Kafka. На первый взгляд звучит просто — сделал транзакцию, отправил сообщение, закоммитил. Но в реальности между базой данных и брокером сообщений никакой общей транзакции нет. В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter , который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.
https://habr.com/ru/articles/966802/
#kotlin #java #spring #springboot #starter #spring_boot_starter #kafka #outbox #jooq #spring_data_jpa
-
Spring-boot-starter для паттерна Transaction outbox Kafka
В микросервисной архитектуре мы постоянно сталкиваемся с задачей: сохранить изменения в базе и гарантированно отправить событие в Kafka. На первый взгляд звучит просто — сделал транзакцию, отправил сообщение, закоммитил. Но в реальности между базой данных и брокером сообщений никакой общей транзакции нет. В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter , который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.
https://habr.com/ru/articles/966802/
#kotlin #java #spring #springboot #starter #spring_boot_starter #kafka #outbox #jooq #spring_data_jpa
-
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.
https://packagemain.tech/p/how-to-implement-the-outbox-pattern-in-golang
-
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.
https://packagemain.tech/p/how-to-implement-the-outbox-pattern-in-golang
-
Автоматизированное машинное обучение с помощью нашего Open Source фреймворка: задача о Титанике
Привет! Меня зовут Владимир Суворов, я Senior Data Scientist в Страховом Доме ВСК и core-разработчик нашей библиотеки машинного обучения OutBoxML. В статье сегодня мы поговорим не о выборе алгоритмов, а о том, как автоматизировать весь процесс ML — от данных до деплоя и мониторинга, сократив время на подготовку с дней до часов. Мы разберем это на примере классической задачи с Titanic, реализованной на нашем фреймворке. Приятного прочтения! Читать и обсуждать
https://habr.com/ru/companies/vsk_insurance/articles/948584/
#ml #opensource #python #fastapi #outbox #data_science #bigdata #machinelearning #framework #titanik
-
Автоматизированное машинное обучение с помощью нашего Open Source фреймворка: задача о Титанике
Привет! Меня зовут Владимир Суворов, я Senior Data Scientist в Страховом Доме ВСК и core-разработчик нашей библиотеки машинного обучения OutBoxML. В статье сегодня мы поговорим не о выборе алгоритмов, а о том, как автоматизировать весь процесс ML — от данных до деплоя и мониторинга, сократив время на подготовку с дней до часов. Мы разберем это на примере классической задачи с Titanic, реализованной на нашем фреймворке. Приятного прочтения! Читать и обсуждать
https://habr.com/ru/companies/vsk_insurance/articles/948584/
#ml #opensource #python #fastapi #outbox #data_science #bigdata #machinelearning #framework #titanik
-
Автоматизированное машинное обучение с помощью нашего Open Source фреймворка: задача о Титанике
Привет! Меня зовут Владимир Суворов, я Senior Data Scientist в Страховом Доме ВСК и core-разработчик нашей библиотеки машинного обучения OutBoxML. В статье сегодня мы поговорим не о выборе алгоритмов, а о том, как автоматизировать весь процесс ML — от данных до деплоя и мониторинга, сократив время на подготовку с дней до часов. Мы разберем это на примере классической задачи с Titanic, реализованной на нашем фреймворке. Приятного прочтения! Читать и обсуждать
https://habr.com/ru/companies/vsk_insurance/articles/948584/
#ml #opensource #python #fastapi #outbox #data_science #bigdata #machinelearning #framework #titanik
-
RabbitMQ как инструмент «деградации с честью»
Как построить микросервисы на RabbitMQ так, чтобы система не падала каскадом, а деградировала предсказуемо: outbox, mandatory, AE, идемпотентность, DLQ, приоритеты и реальные грабли из продакшена
https://habr.com/ru/articles/943022/
#rabbitmq #микросервисы #очереди_сообщений #outbox #отказоустойчивость #архитектурные_паттерны #highload #python #postgresql #идемпотентность
-
RabbitMQ как инструмент «деградации с честью»
Как построить микросервисы на RabbitMQ так, чтобы система не падала каскадом, а деградировала предсказуемо: outbox, mandatory, AE, идемпотентность, DLQ, приоритеты и реальные грабли из продакшена
https://habr.com/ru/articles/943022/
#rabbitmq #микросервисы #очереди_сообщений #outbox #отказоустойчивость #архитектурные_паттерны #highload #python #postgresql #идемпотентность
-
RabbitMQ как инструмент «деградации с честью»
Как построить микросервисы на RabbitMQ так, чтобы система не падала каскадом, а деградировала предсказуемо: outbox, mandatory, AE, идемпотентность, DLQ, приоритеты и реальные грабли из продакшена
https://habr.com/ru/articles/943022/
#rabbitmq #микросервисы #очереди_сообщений #outbox #отказоустойчивость #архитектурные_паттерны #highload #python #postgresql #идемпотентность
-
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
-
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
-
#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.
-
#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.
-
#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.
-
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 […]
https://activitypub.blog/2025/06/24/what-we-shipped-so-far-in-2025/
-
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 […]
https://activitypub.blog/2025/06/24/what-we-shipped-so-far-in-2025/
-
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 […]
https://activitypub.blog/2025/06/24/what-we-shipped-so-far-in-2025/
-
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 […]
https://activitypub.blog/2025/06/24/what-we-shipped-so-far-in-2025/
-
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 […]
https://activitypub.blog/2025/06/24/what-we-shipped-so-far-in-2025/
-
Em sembla que ja funciona com cal, ja fa el paginat de tots els tuts del compte consultat.
https://codeberg.org/spla/appy/commit/00ca934776a498ede68cf432de10d209f9bcf324
-
Em sembla que ja funciona com cal, ja fa el paginat de tots els tuts del compte consultat.
https://codeberg.org/spla/appy/commit/00ca934776a498ede68cf432de10d209f9bcf324
-
Em sembla que ja funciona com cal, ja fa el paginat de tots els tuts del compte consultat.
https://codeberg.org/spla/appy/commit/00ca934776a498ede68cf432de10d209f9bcf324
-
Em sembla que ja funciona com cal, ja fa el paginat de tots els tuts del compte consultat.
https://codeberg.org/spla/appy/commit/00ca934776a498ede68cf432de10d209f9bcf324