#outbox — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #outbox, aggregated by home.social.
-
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 #идемпотентность
-
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
-
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
-
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 #идемпотентность
-
RabbitMQ как инструмент «деградации с честью»
Как построить микросервисы на RabbitMQ так, чтобы система не падала каскадом, а деградировала предсказуемо: outbox, mandatory, AE, идемпотентность, DLQ, приоритеты и реальные грабли из продакшена
https://habr.com/ru/articles/943022/
#rabbitmq #микросервисы #очереди_сообщений #outbox #отказоустойчивость #архитектурные_паттерны #highload #python #postgresql #идемпотентность