home.social

#outbox — Public Fediverse posts

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

  1. 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

  2. : 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

  3. #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

  4. #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

  5. #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

  6. #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

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

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

    habr.com/ru/companies/otus/art

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

  8. 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

  9. 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

  10. 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

  11. 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

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

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

    habr.com/ru/articles/943022/

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

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

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

    habr.com/ru/articles/943022/

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

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

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

    habr.com/ru/articles/943022/

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

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

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

    habr.com/ru/articles/943022/

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