Published On Jun 22, 2024
Transactional Outbox - паттерн, который обеспечивает атомарность двух операций - сохранения измений в БД и отправки сообщения об этих изменениях в другой сервис.
В этом видео мы подробно разберемся, почему решаемая им проблема важна, как он устроен, а затем реализуем его самостоятельно на языке Go
Хорошая статья моего бывшего коллеги Миши Боровикова на эту же тему, если хотите глубже вникнуть в тему: https://habr.com/ru/companies/lamoda/...
Здесь подробно разобран пример использования паттерна в компании Lamoda.
Код из ролика я закоммитил в отдельную ветку проекта URL Shortener, т.к. в основной ветке мне этот функционал пока не нужен. Ссылка на соответствующую ветку: https://github.com/GolangLessons/url-...
----
👾 https://t.me/ntuzov - мой канал в Telegram.
Пишу в нём много интересного: гайды, которых нет на YouTube, интересные мысли про разработку, новости и анонсы всех моих активностей и др.
👀 GoLang Digest: https://t.me/golang_digest - мои регулярные подборки интересных материалов по Go.
🗣️ Наше сообщество GopherClub: https://t.me/+zsSZ63wEJDs3NGVi
Лучшее русскоязычное Go-сообщество с очень приятной атмосферой, без токсиков. Вежливо и терпеливо помогаем новичкам, конструктивно дискутируем с профессионалами и т.п.
Здесь также присутствуют все звезды Go-сообщества и представители интересных компаний.
❤️ Если у вас есть желание поддержать развитие канала:
Секретный телеграм-канал:
- В рублях: https://t.me/tribute/app?startapp=s3Q5
- В евро: https://t.me/tribute/app?startapp=s3Q6
Boosty: https://boosty.to/nikolay.tuzov
Patreon: / tuzov
----
00:00 Какую проблему мы решаем
05:47 Нам нужна атомарность
07:03 Про Two-Phase Commit
07:36 NoSQL базы данных
09:59 Гарантия доставки - "At Least Once"
11:48 Практика: пишем Outbox для сокращателя ссылок
12:43 Storage: сохраняем сообщения в таблицу
28:01 Event Sender: отправка сообщений из таблицы
36:52 Подключаем Event Sender
39:09 Тестируем отправку сообщений
41:12 Итоги
42:07 Мой Телеграм-канал: почему он важен
43:05 Заключение
#golang #ntuzov